Java低速GUI Swing 9
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/12/19(土) 23:13:39しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 8
http://pc12.2ch.net/test/read.cgi/tech/1227234261/
Java低速GUI Swing 7
http://pc11.2ch.net/test/read.cgi/tech/1204155623/
Java低速GUI Swing 6
http://pc11.2ch.net/test/read.cgi/tech/1190807478/
Java低速GUI Swing 5
http://pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
http://pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50
0002デフォルトの名無しさん
2009/12/19(土) 23:14:24NetBeans
http://www.netbeans.org/index_ja.html
Eclipse+VisualEditorPlugin
http://www.eclipse.org/
http://www.eclipse.org/vep/
Jigloo
http://cloudgarden.com/jigloo/index.html
0003デフォルトの名無しさん
2009/12/19(土) 23:15:08Q. AWT と Swing 混ぜちゃ駄目って聞いたんですけど
混ぜちゃ駄目なんですか・・・・?
A.
今まででは、「駄目」というのが正解です。
が、現在開発中(未リリース)のバージョンではSwingとAWTの混在ができるようになっています。
正式リリースがされるまで、情報の錯綜があって混乱すると思いますが
普通の人にとっては「まだ駄目」という状況だと思ってください。
Q. Nimbusって何よ。
A.
次期Swingの標準となるとされているLAFです。
元々は、SUNのGnome環境のテーマに使われていた見た目を移植したものになります。
実装にはXMLベースでLAFを定義できるSynthLookAndFeel を利用しています。
jdk6の開発版で試す事ができます。
Q. こんなプログラムを作れって言われたんですが・・・
A.
宿題スレへどうぞ。
Q. なんでスレタイに低速って入ってるの?
A.
まだまだ速くなるってことさ。
0004デフォルトの名無しさん
2009/12/20(日) 00:19:25Nimbus って、今でも JDK でしか使えないの?
うちの環境では JRE でも Nimbus が使えるけど。
JDK もインストールしてあるから、
JRE が JDK 付属の Nimbus を読み込んでる?
0005デフォルトの名無しさん
2009/12/20(日) 00:40:25前スレ開始とほぼ同じ時期の登場だったかな。
次スレで直せばOKじゃない?
0006デフォルトの名無しさん
2009/12/20(日) 01:33:100007デフォルトの名無しさん
2009/12/20(日) 12:23:00はあ?
0008デフォルトの名無しさん
2009/12/20(日) 13:27:31前1がSwing/AWTスレ8をディスったからテンプレにないだけで。
0009デフォルトの名無しさん
2009/12/20(日) 13:36:32Swing/AWTスレ8のアドレス希望
0010デフォルトの名無しさん
2009/12/20(日) 14:00:260011デフォルトの名無しさん
2009/12/20(日) 16:00:39Disられてるのは、↓のスレタイじゃないの?
> Java低速GUI Swing 6
> http://pc11.2ch.net/test/read.cgi/tech/1190807478/
0012デフォルトの名無しさん
2009/12/21(月) 10:52:10どなたか、教えてください
//2列目以外はすべて、数字でソートする。
model = new DefaultTableModel(columnName, 0) {
@Override
public Class getColumnClass(int columnIndex) {
if(columnIndex == 1) return String.class;
else return Integer.class;
}
}
//奇数行は白、偶数行は水色で背景を塗りつぶす。
private static class TestTableCellRenderer extends DefaultTableCellRenderer {
private static final Color BGCOLOR = new Color(135, 206, 250);
@Override
public Component getTableCellRendererComponent(JTable tb,
Object val,boolean isSelected, boolean hasFocus,int r,int c){
setBackground(r % 2 == 0 ? Color.white : BGCOLOR);
return super.getTableCellRendererComponent(tb,val, isSelected,hasFocus,r,c);
}
}
0013デフォルトの名無しさん
2009/12/21(月) 12:48:480015デフォルトの名無しさん
2009/12/21(月) 20:07:01エスパーすると、レンダラーの設定をString.classのカラムに対してやってない?
table.setDefaultRenderer(Integer.class, new TestTableCellRenderer());
にしないとダメだよ
0016デフォルトの名無しさん
2009/12/21(月) 22:17:54コンポーネントAをコンポーネントBにadd()し、コンポーネントCにもコンポーネントAをadd()します。
その後にBとCを表示してみると、Bがうまく表示されません。
どのようにしたら、B、CどちらにもAを表示させる事ができますか?
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
panel1.add(label);
panel2.add(label);
frame.add(panel1, BorderLayout.NORTH); ←表示されない
frame.add(panel2, BorderLayout.SOUTH);
0017デフォルトの名無しさん
2009/12/21(月) 23:30:150018デフォルトの名無しさん
2009/12/21(月) 23:40:20コンポーネントAがBに表示されずCにしか表示されないということであれば、
コンポーネントAを2つ生成(内容は同じだが別のオブジェクト)して、
一方をコンポーネントBに、もう一方をコンポーネントCにadd()するしかないかと。
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
panel1.add(label1);
panel2.add(label2);
frame.add(panel1, BorderLayout.NORTH);
frame.add(panel2, BorderLayout.SOUTH);
001916
2009/12/21(月) 23:57:13ちなみに、レイアウトが替わっても表示するものは同じです
JPanel panel1 = new JPanel(); ← レイアウトA
JPanel panel2 = new JPanel(); ← レイアウトB
panel1.add(label); ←表示するもの
panel2.add(label);
>>18
表示する物が同じだから1つのインスタンスでどうにかしたい
と思いました
0020デフォルトの名無しさん
2009/12/22(火) 02:58:29CardLayout
002120
2009/12/22(火) 03:00:07同じものを配置替えするという方法を取るところだろうね。
0022デフォルトの名無しさん
2009/12/22(火) 04:01:20BかCに add し直すしかないのでは
0023デフォルトの名無しさん
2009/12/22(火) 04:21:44002416
2009/12/22(火) 10:14:08実装する時に手を抜きたかったのですが、無理ですね
ありがとうございました
0025デフォルトの名無しさん
2009/12/22(火) 11:19:57Component#getListeners(Class<T> listenerType)の中にあるリスナー群がすべてのイベントになるでしょうか?
つまりgetListeners(各イベントクラス)を10イベントリスナークラス分実行してとれたものを、
これ以外のイベント処理クラスは使用していません、と言いきれるものになるでしょうか?
0026デフォルトの名無しさん
2009/12/22(火) 11:26:130027デフォルトの名無しさん
2009/12/22(火) 15:52:07Component#getListeners(Class<T> listenerType)の中で使われてゐたリスナークラスの種類です。
0028デフォルトの名無しさん
2009/12/22(火) 15:59:48ActionListenerとMouseListenerどっちも実装してるクラスとかあっても、
ちっとも珍しい話ではない。
getListenersで得られたアクションリスナが、
実はマウスリスナでもありました、
というのは自前でinstanceof演算子で判定するしかないのでは。
とエスパー回答。何がしたいかわからんが、java.util.EventListenerProxyも
読んどいた方がいいような。
0029デフォルトの名無しさん
2009/12/22(火) 18:07:29あぁ、10の意味がわかった
その中に Button とかでよく見る ActionListener が無いのが不思議ではなかったか?
残念ながら Component#getListeners はサブクラスでオーバーライドされている
全部の一覧を得るのは無理じゃない?
0030デフォルトの名無しさん
2009/12/22(火) 18:14:03うーん。でもJButtonのgetListenersはオーバライドされていないんだよね…
0031デフォルトの名無しさん
2009/12/22(火) 18:19:48JComponent以下はEventListenerListを使っててどんなリスナでも入る
0032デフォルトの名無しさん
2009/12/22(火) 18:24:55おお、すみません。見落としてました。
対象部品のgetListeners呼んでおけば各部品の全イベントが取れそうですね。
0033デフォルトの名無しさん
2009/12/22(火) 19:52:37今SourceForgeでJavaMIDIMixer作ってるモノですが
MDIウィンドウを画面の下や右にピタッっと張り付ける
そんな事を実現するスタンダードな手順はありますでしょうか?
0034デフォルトの名無しさん
2009/12/22(火) 22:10:19MDIってことはJDesktopPaneとJInternalFrameか。
ドラッグして外周に近づいたら吸い付くってやつなら
ttp://terai.xrea.jp/Swing/MagneticFrame.html
こんなの?
0035デフォルトの名無しさん
2009/12/22(火) 22:50:44これはすばらしいですね
0036デフォルトの名無しさん
2009/12/22(火) 23:51:540037デフォルトの名無しさん
2009/12/23(水) 22:55:08どうやって、実装してるんですか?ヒントをください
0038デフォルトの名無しさん
2009/12/23(水) 22:57:33003937
2009/12/23(水) 23:05:400040デフォルトの名無しさん
2009/12/23(水) 23:14:230041デフォルトの名無しさん
2009/12/23(水) 23:20:25JTableのソースを読むと、そんな低レベルのメソッド使ってませんよ
0042デフォルトの名無しさん
2009/12/23(水) 23:23:44BasicTableUIみてみろ
0043デフォルトの名無しさん
2009/12/23(水) 23:26:39ためしに、JPanelにボタンとかリストボックス配置して、
JScrollPaneでそのJPanelかこってみなさいよ
Graphics2Dとかが自動的に処理してくれるから、ボタンもちゃんと押せるし、ほかの部分の描写かからないし
画像を張りたいなら、スクロール関係なしで、グラフィックを描写するPanelを設計して、
JScrollPane -> JPanel -> Layout -> グラフィックPanelクラス
の順番でつなげればいいだけ
グラフィックパネルの中ではそういうの必要ですけどね、
JTableはJTableUIのソースを見る必要がありそうですね
がんばってね!
0045デフォルトの名無しさん
2009/12/24(木) 00:01:460046デフォルトの名無しさん
2009/12/24(木) 00:33:36知りたいことは全部書かれてる気もするが
0047デフォルトの名無しさん
2009/12/24(木) 13:22:510048デフォルトの名無しさん
2009/12/24(木) 13:53:54自由に配置移動やボタンの追加等行って、それを保存呼び出ししたいと考えてますが、
その場合余計なことをせず、TOPのフレームをシリアライズANDデシリアライズで実現できそうでしょうか?
ComponentがSerializableなので、シリアライズ保存は想定されているんですよね?
0049デフォルトの名無しさん
2009/12/24(木) 14:47:00XMLEncoder/XMLDecoderの方がいいかもしれません
0050デフォルトの名無しさん
2009/12/24(木) 15:36:000051デフォルトの名無しさん
2009/12/24(木) 16:00:07> 警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。
0052デフォルトの名無しさん
2009/12/24(木) 20:16:59だれが、あらかじめ登録していた内容を呼び出すのですか?
0053デフォルトの名無しさん
2009/12/24(木) 20:41:17どういう内容が知りたいのか図りかねるが
取り敢えずEDTと答えておこう。
0054デフォルトの名無しさん
2009/12/24(木) 20:41:56JButtonの中の人
厳密にいえばAbstractButton#fireActionPerformed
その呼び元はDefaultButtonModel#setPressed
ButtonUIの中の人がマウスリスナかなんかを使ってマウスの動きを見てsetPressedを呼ぶ
0056デフォルトの名無しさん
2009/12/24(木) 21:43:01小人さんスレッドがたくさん観察できるよ
※ コンソールからスレッドダンプでもおk
0057デフォルトの名無しさん
2009/12/25(金) 01:41:34たしかに初めのうちは分かりにくい仕組みではあるよな
0058デフォルトの名無しさん
2009/12/25(金) 11:53:30画面作成時のコンストラクタで親画面や操作したい画面を渡す?
画面をグローバル(public static)にする。
なんかstritsみたいにこれで行こうフレームワークはないですかね?
0059デフォルトの名無しさん
2009/12/25(金) 13:00:35ControllerにViewとModelぶらさげて、
Viewから親画面と子画面をたどり
Modelから親データと子データをたどれば
画面間で変数アクセスできなくても無問題。
Webアプリとやらの「自称MVC」とはたぶん違うので注意。
0060デフォルトの名無しさん
2009/12/25(金) 13:27:00もしくはそんな動向の噂とか…
なるべく先をにらんだ設計にしたいもので
0061デフォルトの名無しさん
2009/12/25(金) 13:42:32JRE、サーとパーティのライブラリ問わずに、適した便利なクラス(マウスリスナー?)知っていたら教えてください。
0062デフォルトの名無しさん
2009/12/25(金) 14:41:03こんなん作ったけど、いまいちうまく動かん。
int x ;
int y;
boolean init = false;
public void mouseMoved(MouseEvent e) {
Component c = (Component)e.getSource();
if (!init) {
init = true;
x = e.getX();
y = e.getY();
return;
}
c.setLocation(c.getX() +(e.getX() - x), c.getY() +(e.getY() - y));
x = e.getX();
y = e.getY();
}
0063デフォルトの名無しさん
2009/12/25(金) 17:39:530064デフォルトの名無しさん
2009/12/25(金) 19:01:25─┼───
.a │
.b │
Jtableの質問です
上記のような縦列表を作りたいのですがどうすれば良いのでしょうか
表の空欄には数値データを入れて計算等が出来るようにしたいと思っています
0065デフォルトの名無しさん
2009/12/25(金) 19:16:09destroy()メソッドが呼ばれたときに中でメッセージを表示したりは
できるけど、閉じるのを防ぐことは出来ないと思う。
0066デフォルトの名無しさん
2009/12/26(土) 10:49:36new JTable(3,3)
006764
2009/12/26(土) 12:04:16列ABにString[]、行abにString[][]を使って
JTable table = new JTable(String[][],String[])としたのですが、
String[][]を使ったために空セルにInt型のデータを入れられません
どうすれば列AB行abを残したまま空セルに数値データを入れられるのでしょうか
0068デフォルトの名無しさん
2009/12/26(土) 12:08:110069デフォルトの名無しさん
2009/12/26(土) 12:54:57セルレンダラーやセルエディタを駆使しないと難しいよ。
0071デフォルトの名無しさん
2009/12/26(土) 14:07:030072デフォルトの名無しさん
2009/12/28(月) 12:39:08スクロールバーをクリックした後に、JScrollPaneのどのメソッドが呼び出されているのかわかりません
どなたか教えてください
0073デフォルトの名無しさん
2009/12/28(月) 15:56:07それによってそのBoundedRangeModelに登録されたChangeListenerが起動する
BasicScrollPaneUIがここにChangeListenerを登録していて、その中でJViewport#setViewPositionを呼んで表示範囲を調節している
JScrollPaneはJViewportとJScrollBarとScrollPaneUIを管理しているだけ
0074デフォルトの名無しさん
2009/12/29(火) 10:08:010076デフォルトの名無しさん
2009/12/29(火) 11:48:240077デフォルトの名無しさん
2009/12/29(火) 16:12:260078デフォルトの名無しさん
2009/12/29(火) 16:35:530079デフォルトの名無しさん
2009/12/30(水) 00:03:27((JSlider)e.getSource()).setValue(0);
とかやっても、内部的な値は0にされるのですが、ツマミの位置がドラッグされた場所になってしまい
整合性がなくなってしまいます。これを防いでツマミも0の位置に合わせるにはどうすればいいでしょうか?
0080デフォルトの名無しさん
2009/12/30(水) 00:08:360081デフォルトの名無しさん
2009/12/30(水) 00:09:190082デフォルトの名無しさん
2009/12/30(水) 01:22:260083デフォルトの名無しさん
2009/12/30(水) 01:22:52>>80
なんか振動?みたいな動きをしましたが、結局何も解決しませんでした。
>>81
なんでです?調べるキーワードも分からなかったんですが
0084デフォルトの名無しさん
2009/12/30(水) 02:10:06たぶん振動するのは
1.スライダーが動く
2.スライダーの値が0になる
3.マウスがスライダーの上にあるのでスライダーが動く
これが繰り返されてるんだと思う。
スライダーをドラッグしたときどうしたいかがよくわからない、もう少し詳しく話してほしい
0085デフォルトの名無しさん
2009/12/30(水) 06:06:09Swingは、スレッドセーフではないので、操作するときは、invokeLaterは、ほぼ必須です。
ちなみに、invokeLaterは、SwingUtilitiesでもEventQueueでも一緒ですね。
スライダーがかたかたいうのは、
スライダーに値をセットする前に、
マウスをはなした事にするイベントを、
擬似的に発生させれば回避できるかと思います。
0086デフォルトの名無しさん
2009/12/30(水) 06:07:13if (EventQueue.isDispatchThread()) {
SwingUtilities.invokeAndWait(runnable);
}else {
SwingUtilities.invokeLater(runnable);
}
0087デフォルトの名無しさん
2009/12/30(水) 06:09:48JSlider jSliderXXXXXなどと、パネル(フレームでも)のメンバー変数として、準備し、
そちらへアクセスしましょう。
0088デフォルトの名無しさん
2009/12/30(水) 06:14:15if(e.getSource() == jSliderValueA) {
jSliderValueA.hoge();
}eles if(e.getSource() == jButtonX) {
jButtonX.setXXX();
}
0089デフォルトの名無しさん
2009/12/30(水) 10:06:540090デフォルトの名無しさん
2009/12/30(水) 13:36:150091デフォルトの名無しさん
2009/12/30(水) 17:13:53でももし、明らかな場合はいいよね?ローカル変数にコンポーネントのインスタンス作っては
無名リスナークラスを設定しまくってるから、数十行の間に全ておさまってるんだけど・・・
0092デフォルトの名無しさん
2009/12/30(水) 20:19:26final JSlider target = slider;
slider.add○○Listener(new ○○Listener(){
public void ○○(○○Event e){ target.・・・; }});
>85
SwingUtilitiesはEventQueueのカバーメソッドなのでなるべくEventQueueを使うように、とどっかに書いてあった
0093デフォルトの名無しさん
2009/12/30(水) 20:50:18やっぱり不便ですね。皆さんありがとうございました。
0094デフォルトの名無しさん
2009/12/30(水) 22:43:21これswingの実装を知ってる必要があるんじゃね?
0095デフォルトの名無しさん
2009/12/31(木) 00:13:30EventQueueのカスタム化も大した労力ではないが。
0096デフォルトの名無しさん
2009/12/31(木) 10:51:300097デフォルトの名無しさん
2009/12/31(木) 11:57:09漢字などの変換決定時に同じ文字のRemoveイベントとInsertイベントが飛んできてしまいます。
例えば"ねこ"を"猫"に変換するときに
INSERT ねこ
[変換する]
REMOVE ねこ
INSERT 猫
[変換決定]
REMOVE 猫
INSERT 猫
まぁ、動作としては正しいのでしょうが、こちらのプログラムの仕様上どうしても最後の重複した猫が
大きな無駄になってしまうので、なんとか変換決定イベントを知りたいのです。
もちろんRemoveイベントも受け取らなくてはならないのでRemoveを無視すれば?というわけにはいきません・・・。
キーイベントかなんかで頑張るしかないのでしょうか?(バグが出そうですが)
0098デフォルトの名無しさん
2009/12/31(木) 15:12:59イベントのgetText()やgetCommittedCharacterCount()の長さを
デバッグ文で観察しつつ、いろいろなかな漢字変換操作を試してみよう。
確定した瞬間をとらえる判定式が、おのずと導けると思う。
細かいことは忘れた。
0099デフォルトの名無しさん
2009/12/31(木) 15:31:520100デフォルトの名無しさん
2010/01/01(金) 00:43:13ありがとうございました
0101デフォルトの名無しさん
2010/01/01(金) 02:57:20「わかやまけん」とか読みを入力するときだけリミッターを外すとか
みんなしてないのかな?
0102デフォルトの名無しさん
2010/01/01(金) 03:02:32表記ゆれが怖いからコンボボックスじゃない?普通
0103デフォルトの名無しさん
2010/01/01(金) 03:47:10たぶん一から作り直しになるだろうけど、frameworkとかlibrary化するってのはそういうものだと諦めたほうがいいだろう。
その変換で無駄な感じとは思っていても、たいていは思ってたほどコストでもないからそのまま逝っちゃうってのがおおいけど。
0104デフォルトの名無しさん
2010/01/01(金) 04:24:47入力中もリアルタイムで見た目を更新するので、うひゃ〜なんですけど、時間があればやります。ありがとうございました
0105デフォルトの名無しさん
2010/01/04(月) 13:20:121つのフレームに複数のテーブルを設置する事は出来るのでしょうか?
また、フレームを2つ作った場合、片方のテーブルのデータを変更した時に
もう片方のデータも同時に自動で変更するという事は出来るのでしょうか?
0106デフォルトの名無しさん
2010/01/04(月) 14:01:37同じデータを使ってTableModelを作ればいいだろう
JTable自体は二つ、TableModelを共通のものとかにすれば自然とそうなるんじゃないか?
0107ウォシュレットのアームめがけて排便する俺 ◆06NY4sFIG.
2010/01/04(月) 20:33:06JavaAPIのJavadocからもリンク張られてるけど、
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data
あたりも読んでみては。
106の方も言ってるけど、
この図のうち、
(TableModelやAbstractTableModelを継承した)Table Model Objectを1インスタンス、(JTableを継承した)Table Objectを2インスタンス作る。
んで、2つのTableのイベントリスナを同じModelに登録(addTableModelListenerメソッド)しとけば、
Model変更時にfireTableDataChangedみたいなメソッドで双方のTableに通知できる。
入力に使った方のTableも、入力イベントじゃなくて、
もう一方の方と同じようにfireイベントで更新しないといけないんじゃないかな。
(入力イベントで行うのはModelの更新だけ。もちろんModelの先にあるTable Dataも更新されるだろうけど。)
0108デフォルトの名無しさん
2010/01/07(木) 20:34:19htmlみたいにデザインを変更したいとの要求が上がっています。
Swingのhtml的デザインってどこまでできるのでしょうか?
0109デフォルトの名無しさん
2010/01/08(金) 11:33:11HTMLを使ったSwingコンポーネントのレイアウトは無理。
Swingの各種LayoutManagerのレイアウト機能はHTMLやCSSよりはるかに優秀。
リキッドデザインとかお手の物。CSSハックとかバカバカしくなって、戻れなくなるよ。
0110デフォルトの名無しさん
2010/01/08(金) 11:44:160111デフォルトの名無しさん
2010/01/08(金) 12:36:16でもswingのhtmlがレイアウトできるのはjavax.swing.text.Viewであって
swingコンポーネント(JComponent)ではないんだ
レイアウト周りのAPIは結構似てるけど。
0112デフォルトの名無しさん
2010/01/08(金) 12:54:59アドバイスありがとうございます。
cgiからアプレットに移行したシステムで、cgiがログイン画面をhtmlで変更できますよ、としていたので、
そのままの要求がアプレットにも上がってきた形になってます。
イメージとしては、表示したいhtmlの内容を設定ファイルに書いておき、
それをロードして、そのレイアウトでアプレットの画面を表示することをしたいです。
つまり、アプリ改修なしで好きなタイミングで好き勝手にデザイン変更することが求められ、
htmlに慣れているので、html以外のデザイン変更方法は受け付けない、というのが要求です。
凝ったことはしない+入力部品はID、パスワードだけで、増減はなしです。
Swingに取り込むときの設計イメージがわきません。アドバイスいただければと思います。
0113デフォルトの名無しさん
2010/01/08(金) 12:56:51文がおかしかったので、
cgiがログイン画面をhtmlで変更できますよ
↓
htmlでできているのでログイン画面を自由にで変更できますよ
0114デフォルトの名無しさん
2010/01/08(金) 13:07:470115デフォルトの名無しさん
2010/01/08(金) 13:11:300116デフォルトの名無しさん
2010/01/08(金) 13:14:25>>112
もしその機能が本当に重要なのであれば、
ログイン画面はApplet化しないでウェブブラウザに任せる、つまり
htmlのままおいておくべきだとおもうけど。
0117デフォルトの名無しさん
2010/01/08(金) 14:58:19http://ikemen.googlepages.com/htmltablepanel
でもなー、客のレベルも相当アレそうで先が思いやられるので、
難癖付けて断るのがベストだと思う。
0118デフォルトの名無しさん
2010/01/08(金) 15:33:54うおおお、これはすごいですね。
イメージが付いてきました。
0119デフォルトの名無しさん
2010/01/08(金) 19:32:010120デフォルトの名無しさん
2010/01/08(金) 19:39:100121デフォルトの名無しさん
2010/01/08(金) 19:45:080122デフォルトの名無しさん
2010/01/11(月) 02:01:21そのうちhtmlをswingになんてアフォフレームワークを売り物にしてくる業者が出て来たら(ry
0123デフォルトの名無しさん
2010/01/12(火) 11:59:50仕事増えるならいいじゃん。
仕事ください
0124デフォルトの名無しさん
2010/01/12(火) 23:52:11文字列の座標情報?などはどうやって管理しているのでしょうか?
JTextComponentはDocumentインターフェイスに依存しているところまではわかるのですが、
そのあとがイマイチわかりません
0125デフォルトの名無しさん
2010/01/13(水) 07:44:57解析したいだけならデバックすれば?
0126デフォルトの名無しさん
2010/01/13(水) 11:26:39ViewFactoryにDocumentのElementを渡して作ってもらいます
0127124
2010/01/13(水) 21:09:05確かに、viewで管理しているみたいですね(さっき、軽く読みました)
ところで、どうやって文字を表示しているんですか?
java.awt.graphicsは使っていないみたいなんですが
0128デフォルトの名無しさん
2010/01/14(木) 10:32:08JButtonとかJTableとかJTextComponentとかSwingにあらかじめ用意されてるコンポーネントはみんな、
自分では描かずにButtonUIとかTableUIとかTextUIとかに処理を委譲している
だからJButtonとかJTableとかJTextComponentとかの方には表示関係のコードやマウス・キー処理のコードはない
ButtonUIとかTableUIとかTextUIとかの方にはルック&フィールごとに異なったサブクラスがあって(MetalButtonUI,等)、
それらがルック&フィールごとに異なった内容を表示し、ルック&フィールごとに異なったマウス・キー処理をしている
見るならそっち側
0129デフォルトの名無しさん
2010/01/14(木) 10:39:38View#paint(Graphics g,Shape allocation)ってあるよな?
ちなみにTextUIってのは単なるViewFactoryだ。
0130デフォルトの名無しさん
2010/01/14(木) 10:41:490131デフォルトの名無しさん
2010/01/14(木) 22:30:28ありがとうございます
0132デフォルトの名無しさん
2010/01/18(月) 19:29:12描画範囲がJPanelのサイズを超えた場合、自動でJPanelのサイズを拡大するには
どうすればよいですか?
0133デフォルトの名無しさん
2010/01/18(月) 19:33:460134デフォルトの名無しさん
2010/01/19(火) 08:00:54setSizeでセットしたサイズ内で収まるようにするプログラムしたいときはnullレイアウトしかないのでしょうか。
0135デフォルトの名無しさん
2010/01/19(火) 08:36:510136デフォルトの名無しさん
2010/01/19(火) 09:59:252.そしたら誰かがsetSize()に80x80を渡してきたので不本意ながら従った。
3.そしたら誰かがクリップ領域10x10+20+20にしてpaintComponent()を呼んできた。
こんな状況?
クリップ領域は気にせず半径500の円弧だろうがなんだろうがガンガン描いたらよろしい。
どうしてもクリップ領域大きくしたいならrepaint(x,y,w,h)だけ呼んで
paintComponent()を終わらせればまたいつか新クリップでpaintComponent()が呼ばれる。
paintComponent()中にどうしてもコンポーネントサイズを大きくしたくなったなら
revalidate()だけ呼んでpaintComponent()を終わらせる。
そのうちgetMinimumSize()が呼ばれるので希望サイズを返す。
getPreferreSize()やgetMaximumSize()が呼ばれてもInteger.MAX_VALUEを
返しておけばいい。
やがてsetSize()が呼ばれるだろう。もし希望が叶わなくてもここは絶対服従。
0137デフォルトの名無しさん
2010/01/19(火) 10:34:24なんか誤解してるようですが、newしたときとかでその初期セットサイズ setSize(a,b)のまま固定しておきたくて、
基本的にサイズのは変更を許さず、resizeとかのレイアウト変更によって初期セットサイズを変更されたくないって意味です。
場合によっては縮小のときだけは許すが、拡大はmax sizeはsetSize(a,b)まで。
そういうときはnullレイアウトしかないのでしょうか。
レイアウトマネージャ使うとsetSizeの設定は実質意味をなしませんよね。
0138デフォルトの名無しさん
2010/01/19(火) 10:43:420139デフォルトの名無しさん
2010/01/19(火) 10:52:20AWTならnullレイアウトでいいけどSwingだと修飾がJava2Dだからなぁ。
ゲームだとGUI自前だしCanvasのサイズを強制したいからnullレイアウト使うがね。
0140デフォルトの名無しさん
2010/01/19(火) 11:04:06あまり分かってないようだけど、setSizeの質問ではswingはまったく関係ないよ。
0141デフォルトの名無しさん
2010/01/19(火) 18:29:29描画中にリサイズしたらイベントキューが理論的に順番めちゃくちゃにならない?
0142デフォルトの名無しさん
2010/01/20(水) 19:04:260143デフォルトの名無しさん
2010/01/20(水) 21:02:390144デフォルトの名無しさん
2010/01/25(月) 23:15:21JTableの列幅に変更があった場合、addした5つ全ての列幅を変更したいと考えています
どのように、すればよいのでしょうか?
0145デフォルトの名無しさん
2010/01/26(火) 11:01:060146デフォルトの名無しさん
2010/01/26(火) 20:47:58thx
0147デフォルトの名無しさん
2010/01/27(水) 06:05:300148デフォルトの名無しさん
2010/01/27(水) 06:12:280149デフォルトの名無しさん
2010/01/28(木) 16:49:410150デフォルトの名無しさん
2010/01/29(金) 01:27:410151デフォルトの名無しさん
2010/02/05(金) 22:22:26IDEのバージョンアップでデザイナそのものが使えなくなるかもとか考えると怖い。
0152デフォルトの名無しさん
2010/02/06(土) 12:14:53もちろん直接じゃなくて、ビルダークラス挟むけど。
builder.setContainer(container);
builder.setResourceBundle(resourceBundle);
builder.weight(0,0).addLabelResource("some.resource");
builder.weight(100,0).colSpan(2).add(new JButton(action));
builder.nextRow();
みたいな感じで。
0153デフォルトの名無しさん
2010/02/06(土) 20:46:471.6からだけど、手書きならgroup layoutとかいいよ。
grid bagのさらにパワーアップしたレイアウトだからそのブルダークラスとやらと同じ感じで設定できるだろう。
0154デフォルトの名無しさん
2010/02/06(土) 23:51:42JOptionPane でキャンセルボタンにデフォルトのフォーカスを置きたいのでユーティリティメソッド
使わないで書いていったんだけど、ボタン名を自分で指定しなきゃいけないのかな。
0155デフォルトの名無しさん
2010/02/07(日) 00:26:41com/apple/laf/resources/aqua.properties (他数言語)に
OptionPane.yesButtonText=Yes
OptionPane.okButtonText=OK
などと書いてあるなあ。
0156デフォルトの名無しさん
2010/02/07(日) 00:32:52で取れそう。
ところで、
ttp://sites.google.com/site/shin1ogawa/java/swing/joptionpane-default-focus
なんて見つけた。
0157デフォルトの名無しさん
2010/02/07(日) 01:28:10"OptionPane.yesButtonText"
"OptionPane.noButtonText"
"OptionPane.cancelButtonText"
"OptionPane.okButtonText"
これらをキーにして UIManager.getString(String) を使う。
ロケールも指定すれば、各国語にローカライズされたテキストも取れる。
UIManager.getString("OptionPane.cancelButtonText", Locale.ENGLISH)
は "Cancel" を返す。
0158デフォルトの名無しさん
2010/02/07(日) 11:03:35自動的に上下にスクロールとか、2列にするとかの仕組みはありませんでしょうか。
0159デフォルトの名無しさん
2010/02/07(日) 11:51:22こんなの見つけた。動作は見てない。
http://www.beginner-java-tutorial.com/scrollable-jpopupmenu.html
0160デフォルトの名無しさん
2010/02/07(日) 15:17:170161デフォルトの名無しさん
2010/02/07(日) 15:41:54どこの誤爆?
0162デフォルトの名無しさん
2010/02/07(日) 18:34:50ありがそうございます ^^
0163デフォルトの名無しさん
2010/02/07(日) 18:38:02で透明度を設定すると、3回に1回くらい一瞬だけ真っ黒になるのだけれど、これはグラフィック性能がクソだからなのでしょうか?
0164デフォルトの名無しさん
2010/02/07(日) 19:16:28たぶん、PCニュース板あたりじゃない?
あそこではMacを、>>160みたいに馬鹿にしているし
0165デフォルトの名無しさん
2010/02/08(月) 00:32:540166デフォルトの名無しさん
2010/02/08(月) 14:26:220167デフォルトの名無しさん
2010/02/10(水) 10:32:30どのように処理すればいいのでしょうか?
行ごと、列ごとは出来ましたが、
各セルごとができません。
ご存知の方がおられましたら、
ご教示していただけませんでしょうか?
0168デフォルトの名無しさん
2010/02/10(水) 10:43:530169デフォルトの名無しさん
2010/02/10(水) 10:45:500170デフォルトの名無しさん
2010/02/10(水) 11:05:040171デフォルトの名無しさん
2010/02/10(水) 11:09:540172デフォルトの名無しさん
2010/02/10(水) 11:13:00ColorRenderer というクラスがあるから見てみ。
0173デフォルトの名無しさん
2010/02/10(水) 11:36:45オーバーライドし、スーパークラスの同名メソッドを読んだあと this
めんどくせ
0174デフォルトの名無しさん
2010/02/10(水) 12:07:420175デフォルトの名無しさん
2010/02/10(水) 15:46:45このスレ、質問者になりすまして回答してる人がいるね。
0176デフォルトの名無しさん
2010/02/10(水) 15:51:160177デフォルトの名無しさん
2010/02/10(水) 21:46:58ニートが増えたんだろうな
0178デフォルトの名無しさん
2010/02/10(水) 21:55:210179デフォルトの名無しさん
2010/02/10(水) 22:27:480180デフォルトの名無しさん
2010/02/11(木) 09:43:02みたいなことを簡単にできる方法ってありますか?
0181デフォルトの名無しさん
2010/02/11(木) 09:46:28そういうフレームワークちょいちょいと作れば?
0182デフォルトの名無しさん
2010/02/11(木) 14:21:03リスナ上でやるには十分遅い処理じゃね?
0183デフォルトの名無しさん
2010/02/11(木) 21:52:100184デフォルトの名無しさん
2010/02/12(金) 03:11:41http://pc12.2ch.net/test/read.cgi/tech/1264635554/
Ruby 初心者スレッド Part 34
http://pc12.2ch.net/test/read.cgi/tech/1265467681/
Rubyについて Part 39
http://pc12.2ch.net/test/read.cgi/tech/1200175247/
Rubyの宿題教えてください。2限目
http://pc12.2ch.net/test/read.cgi/tech/1233033091/
愛国Ruby
http://pc12.2ch.net/test/read.cgi/tech/1201603546/
魁け! Ruby 1.9.X
http://pc12.2ch.net/test/read.cgi/tech/1249737531/
Rubyについて(アンチ専用) Part004
http://pc12.2ch.net/test/read.cgi/tech/1155031689/
【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc12.2ch.net/test/read.cgi/tech/1170047838/
Ruby最高や!
http://pc12.2ch.net/test/read.cgi/tech/1100563765/
Jython、Groovy、JRuby - どれが一番効率的?
0185デフォルトの名無しさん
2010/02/18(木) 12:58:02末端の JButton, JTextField あたりから組み立てる派かどっちよ?
0186デフォルトの名無しさん
2010/02/18(木) 15:03:130187デフォルトの名無しさん
2010/02/20(土) 11:12:020188デフォルトの名無しさん
2010/02/20(土) 11:38:010189デフォルトの名無しさん
2010/02/20(土) 21:18:02javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).getCapabilities(null).isAccelerated()
これが false になってるのがわかりました。起動直後は true で、サクサク動きます。
これを防ぐ方法は無いでしょうか?
javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).setAccelerationPriority(1.0f)
としてみましたが、やっぱりしばらく使ってると同じ状態になってしまいました。
環境は以下のとおりです。
Java 6u18
Windows XP 32bit
NVIDIA GeForce Go 6600 VRAM 128 MB
0190デフォルトの名無しさん
2010/02/20(土) 22:53:51とりあえずjavaのオプションからDirectXとOpenGLのバージョンとソースすべてうp。
0191デフォルトの名無しさん
2010/02/20(土) 23:46:18問題のアプリは主に jEdit (http://www.jedit.org) です。
V2C でも似たような問題があるようですが、実行中に問題が発生するというわけじゃなさそうです。
http://v2c.s50.xrea.com/manual/win.html#problem
DirectX のバージョンは 9.0c です。
javaw.exe 起動時に -Dsun.java2d.opengl=true すればこの問題は起こらないんですが、
ときどき他のウィンドウと干渉してゴミが表示されたりします。これを回避するために
できれば OpenGL は使わないで済ませたいのですが、方法が見つからない状態です。
0192デフォルトの名無しさん
2010/02/21(日) 15:30:510193デフォルトの名無しさん
2010/02/21(日) 18:16:58これ?
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6921654
取り敢えず他のオプションも試してみれば。
http://www.ea.u-tokai.ac.jp/~sakata/jdk6/docs/ja/technotes/guides/2d/flags.html
OpenGLはOpenGLで問題あるみたいだけど。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723523
とか。
何にしてもスレ違いですね。
0194デフォルトの名無しさん
2010/02/23(火) 00:20:02ありがとうございます。
リンクしていただいたバグは VRAM 上のイメージとメインメモリ上のイメージとで
動作が異なると言うことで、速度低下だけが問題になっている >189 の問題とは違うもの
みたいです。
translaccel と ddforcevram がそれっぽいなぁと思って試してみたんですが、やっぱり
しばらく使ってると問題が発生してしまいました。
ソースコードに問題があるのなら修正に挑戦する気はあるのですが、再現させる手段が
さっぱりなのでどこに手を付けていいものかさっぱりな状態です。
他に同じ症状の情報が見当たらないので、やっぱり環境に大きく依存する問題なのかも
しれません。
0195デフォルトの名無しさん
2010/02/23(火) 12:33:28ってどこからも呼ばれないの?
0196デフォルトの名無しさん
2010/02/23(火) 12:35:00beansbinding の org.jdesktop.observablecollections.ObservableCollections.ObservableListImpl.fireElementChanged(int)
0197デフォルトの名無しさん
2010/02/23(火) 20:15:560198デフォルトの名無しさん
2010/02/28(日) 04:50:07ゲームのマップエディタ適当にSwingで適当につくろうとして久々触ったけど
相変わらず糞だなぁ、、いつまともになるんだろこれ。。
0199デフォルトの名無しさん
2010/02/28(日) 06:00:240200デフォルトの名無しさん
2010/02/28(日) 06:27:000201デフォルトの名無しさん
2010/02/28(日) 09:15:14適正な言語も選べないのか
0202デフォルトの名無しさん
2010/02/28(日) 21:58:51cとかで組めるならjni使えばいい話し出し。
0203デフォルトの名無しさん
2010/02/28(日) 22:43:230204デフォルトの名無しさん
2010/03/03(水) 02:33:210205デフォルトの名無しさん
2010/03/03(水) 03:32:540206デフォルトの名無しさん
2010/03/03(水) 04:57:50ネイティブのそれと微妙に違っててイラっとすることくらいなんだけど
操作感覚にダイレクトに突き刺さってくるので困る。
SWT の作りは大嫌いだし(いまどきイベントループとか)
全般的な命名も好きになれないし(Shell って名前をアレに使うなよ)
体感速度に差があるとも思えないんだけど、
この部分だけが引っかかってしまう。
自分で作るんなら Swing なんだが
使うんだったら SWT みたいな。
0207デフォルトの名無しさん
2010/03/03(水) 11:35:130208デフォルトの名無しさん
2010/03/03(水) 13:39:340209デフォルトの名無しさん
2010/03/03(水) 14:01:080210デフォルトの名無しさん
2010/03/03(水) 22:19:170211デフォルトの名無しさん
2010/03/03(水) 23:08:390212デフォルトの名無しさん
2010/03/04(木) 02:13:19http://swingwt.sourceforge.net/
2005年頃に使ったときは、微妙な互換性不足が残念だった覚えがあるが、
今ならよくなってるかもしれない。試してみたら?
0213デフォルトの名無しさん
2010/03/05(金) 17:08:54いまどきイベントループ、って
どんな言語でもイベントループなんじゃないの?
0214デフォルトの名無しさん
2010/03/05(金) 19:11:480215デフォルトの名無しさん
2010/03/06(土) 09:11:25イベントループしてました、なんて事にさっきまでハマってたところ。
元々イベントループなんざシングルタスク言語やノンプリエンプティブな環境向けの手法だお。
Java のようなマルチスレッド環境では使わないに越したことはない。green thread 時代に
yield() 駆使してた悪夢がよみがえる。
0216デフォルトの名無しさん
2010/03/06(土) 21:58:42仕事ではCOBOLとかC言語が多かったのでJavaはかじった程度の知識しかありません。
ところで、コンポーネントのリスナークラスとか追加するときって、無名クラス使うのが
一般的なんですか?(本とか読むとそれが多いと書いてあったので)
個人的には画面系のプログラムも作ったこともなかったので、よく分からないんですが、
コンポーネントの生成や属性の設定の中に、ロジックが入ってくる様に思えて
なんか違和感を感じるんで、今は無意味でもクラスに名前を書いて内部クラスにしてます。
でも、無名内部クラスにするが一般的なら、それになれとかないとなぁと思い質問しました。
0217デフォルトの名無しさん
2010/03/06(土) 22:03:15どういう違和感を感じるんですか。
0218デフォルトの名無しさん
2010/03/06(土) 22:07:05アプリケーションと画面を同一クラスとして作っていると
そんな感じになってしまうかもしれない。
0219デフォルトの名無しさん
2010/03/06(土) 22:13:36ちゃんと勉強するとなるとかなり大変なんで初心者・初級者用のgui教本は全てそんなもんですよ。
分離しようとすると結局コード量が多くなるんでもしちゃんとguiやるならIDEないと無理でしょうね。
0220デフォルトの名無しさん
2010/03/06(土) 22:14:450221デフォルトの名無しさん
2010/03/06(土) 22:40:14分かりやすい・自然だと思う方を採用したらいいんじゃないでしょうか。
無名クラスの場合は引数以外に定義された環境の情報にアクセスできるメリットと、
切り分けても命名に困る(〜ボタン押したときの処理、以上の名前が思いつかない)
ことが多数なので、私自身は無名クラスで書くことが多いです。
良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
0222デフォルトの名無しさん
2010/03/07(日) 00:10:01テラパッドなどのテキストエディタに[ctrl+v]でペーストした時に
日本語が文字化けしてしまいます。防ぐ方法はありますか。
【Java】 1.6.0_17-b04 (Sun Microsystems Inc.)
【OS】 Windows XP 5.1 (x86)
0223デフォルトの名無しさん
2010/03/07(日) 01:00:27文字コード総合スレ part5
http://pc12.2ch.net/test/read.cgi/tech/1153008301/
こんなエディタ・統合開発環境はいやだ 2種類目
0224222
2010/03/07(日) 01:10:430225216
2010/03/07(日) 03:16:14コンポーネントを作る際、例えば以下の様なものがあるとするじゃないですか。
1.btnS11 = new JButton("Save");
2.btnS11.setFont(new Font("Monospace",Font.BOLD,14));
3.btnS11.addActionListener(new ActionListener {public void actionPerformed(ActionEvent e) {Saveロジック(処理)}})
4.pnl1.add(btnS11);
ってな順になるのかと思いますが、それをコンポーネント分繰り返して
「1.生成2.属性設定3.ロジック4.貼付 1.生成2.属性設定3.ロジック4.貼付…」
みたいな感じで書いてます。
「1、2、4」は画面の見栄えの部分で、「3」はリスナーを追加する行為は画面の見栄え
リスナークラス内は「ロジック」になって、画面定義とロジックが混ざる感覚になる。
「リスナーを有名の他クラスにして、外に飛ばしてやれば、それが除外されるので画面定義だけの部分になってくれる。」
ので、しっくり感が出てます。
(なんか説明、へただなぁ…。)
0226216
2010/03/07(日) 03:44:09221さんが行っているメリットは、無名クラスではなく、内部クラスのメリットだと思います。
一応、外だしの有名クラスにするときも、元のクラスの内部クラスにはして、フィールドとか
までは、利用してます。
結局、無名クラスの場合のメリットとしては
「べつにクラス化しても、結局一ヶ所しかから呼ばれないから意味ない」
「そんなクラスにわざわざ名前つけるのもバカらしい」
「コード見るときに、あっち行ったりこっち行ったりするのも分かりにくい」
のでまとめて書く。ってことかなと思ってます。
(無名クラスの場合のメリットというよりか、外だしにしたクラスのデメリットですが…)
>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
命名規則を何となく決めて置けば、まぁ、なんとかしのげます。
MyBtnS11ActionAdapter 見たいなこのボタンのこのリスナーってなクラス名にしてます。
(よい名前かは置いといて…、ってか、BtnS11って、命名なんやねんってツッコミ入りそうですけど)
0227デフォルトの名無しさん
2010/03/07(日) 03:53:580228デフォルトの名無しさん
2010/03/07(日) 08:42:33ビジネスロジックは別クラスに実装して、
無名リスナーはUIとビジネスロジックのアダプタとして実装している。
こんな感じ。
JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
getSomeLogic().doLogic();
});
getHogeLogic()とdoLogic()の中身は想像で補ってくれ。
ビジネスロジックは、UIと粗結合であるべき、フレームワーク非依存であるべき、
というのが信条なので、SwingのAPIが混ざったクラスにビジネスロジックを書きたくない。
イベント処理にXXXListenerが必要というのはSwingの都合でしかないので、
そういう事情はSwingのUIクラスの中だけで隠蔽したい。
以上のような理由から、上記の作り方をしている。
次の課題として、UIオブジェクトとビジネスロジックオブジェクトのバインディングについて
考える必要があるけど、
そこは、ハードコーディングするなり、上位のオブジェクトからsetしてもらうなり、
DIコンテナでインジェクションするなり、好きな方法をどうぞ。
お薦めはDIコンテナだが、不慣れなら他の方法でもいい。
0229228
2010/03/07(日) 08:44:34JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
getSomeLogic().doLogic();
}
});
0230デフォルトの名無しさん
2010/03/07(日) 15:49:11書いててそう思ったんですが、まあ多分通じると思ってそのままに・・
コンポーネント名+イベント名 な命名しか思いつかない場合、
自分だったら無名内部クラスで片付けてますね。
でもまあその辺りは個人の感覚次第で
何が正しいってわけでもないはず。
(特この件にかんしては明確にどっちが優劣ってのはない。)
「そういう書き方もある」ことを抑えてて、
そういうコード見て面食らう事がないのであれば
別にどっちで書いてもいいと思うんですよ。
vi も Emacs も優れたエディタなんです。
0231216
2010/03/07(日) 18:05:59>>230
自分が無知なので広く意見を伺いたく質問したつもりなのに
変な噛みつき方してすみませんでした。
コメント有難うございました。
0232デフォルトの名無しさん
2010/03/07(日) 20:35:15>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
は、名前が思いつくようなクラスは再利用性があるクラスだから、
「名前が思いつくかどうか」自体が、内部クラスにするかどうかの
そこそこ良い基準になるということを言ったんだと思った。
ちょっと思っただけ。
0233デフォルトの名無しさん
2010/03/07(日) 21:44:270234デフォルトの名無しさん
2010/03/08(月) 08:32:25>>228でもいいんだけど、コンポーネントに直接ActionListenerをaddするんじゃなくて、
Action作って使いまわしたほうがマシだと思う。
ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。
0235デフォルトの名無しさん
2010/03/08(月) 23:48:19JAR ファイルの中見て無名内部クラス使いすぎ云々 (品質悪い) と因縁
付けて来た事があったなー。
0236デフォルトの名無しさん
2010/03/08(月) 23:52:360237デフォルトの名無しさん
2010/03/09(火) 00:04:28金が欲しいなら言う事聞くしかないだろ?
0238デフォルトの名無しさん
2010/03/09(火) 00:10:360239デフォルトの名無しさん
2010/03/09(火) 00:57:47さすがにそのくらいはやってんじゃなかろうか。
同じことを何度も書くのはそもそもアレだし。
0240デフォルトの名無しさん
2010/03/09(火) 15:05:420241デフォルトの名無しさん
2010/03/09(火) 16:43:510242デフォルトの名無しさん
2010/03/09(火) 17:46:22そうです。
エラーが発生してダイアログを出すときに、スタック情報を適当なpublic static にコピーしておいて、
ダイアログ表示中に隠し機能としてF5を押すと、
コピーしておいたスタック情報をクリップボードに張り付けるということがしたいです。
客から問い合わせがあったときに、簡単に対応したいので。
0243デフォルトの名無しさん
2010/03/09(火) 18:11:22JDialog dialog = new JDialog();
dialog.setModal(true);
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JPanel pn = (JPanel)dialog.getContentPane();
pn.getActionMap().put("hoge", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e);
}
});
pn.getInputMap().put(KeyStroke.getKeyStroke("F5"), "hoge");
dialog.setVisible(true);
0244デフォルトの名無しさん
2010/03/09(火) 19:35:53ありがとうございます。
JOptionPane.getRootFrame()から何とかしてアクションマップを登録して、
JOptionPane.showMessageDialog(…);することはできないでしょうか?
0245デフォルトの名無しさん
2010/03/09(火) 19:39:58JDialog 参照する方法が載ってるだろう。
0246デフォルトの名無しさん
2010/03/10(水) 15:44:20JOptionPane.getRootFrame()から何とかして、って書いてあるから答えがかみ合ってないよ。
そんなことは知ってるけどもっと簡単な方法がないかってことだろ。
XXして
JOptionPane.getRootFrame()
で済む方法ってことでしょう。
要はその方法はないってのが正しい返しかな。
0247デフォルトの名無しさん
2010/03/10(水) 18:55:30だから JDialog 参照しろという話をしてるわけだが。
0248デフォルトの名無しさん
2010/03/11(木) 09:06:33Toolkitを使って全てのイベントを監視する方法もある。
どのコンポーネントがフォーカスを持っていようと
F5が押されたらスタックトレースをダンプするようにもできると思う。
0249デフォルトの名無しさん
2010/03/11(木) 11:01:19ちなみに、スクロールで見えてない部分も含め印刷させることが出来るでしょうか?
WORDの差し込み印刷をSwingでやることになりまして…
0250デフォルトの名無しさん
2010/03/11(木) 13:18:00vbaをjavaから呼ぶcom作る輪
0251デフォルトの名無しさん
2010/03/11(木) 14:29:22Apache POI だけはいつも俺の心のアニキ。
0252デフォルトの名無しさん
2010/03/11(木) 16:34:540253デフォルトの名無しさん
2010/03/11(木) 17:17:17まずは簡単なWORD文書をディスプレイに描画させてみて、満足いく結果が得られるのか早期に検討すべし。
たぶん Aspose.Words for Java みたいな有料ライブラリが必要になるだろうよ。
>252
XMLなんか差し込み印刷したってしょうがないだろ
0254デフォルトの名無しさん
2010/03/11(木) 17:25:41Word XML (WordML) 形式の話をしてるんだが、まだ Office が XML で連携できてるって
気付いてない奴って多いんだよな。おまえみたいな。
0255デフォルトの名無しさん
2010/03/11(木) 17:43:50(レイアウト変更等別料金)、検索結果の XML から XSL で Word ファイル作る
ツール作って XSL の書き方だけ教えてあげたらもの凄く喜ばれた。
んで別のデカい仕事貰った。
0256デフォルトの名無しさん
2010/03/11(木) 17:53:46「Word XML (WordML) 形式の話をしてる」
「WORDの差し込み印刷をSwingでやる」の話じゃなかったんならオレが謝る。
0257デフォルトの名無しさん
2010/03/11(木) 17:54:120258デフォルトの名無しさん
2010/03/11(木) 17:57:02Swing から Word XML 出力 & Desktop#print() が思い付かない時点でオ�hル
0259デフォルトの名無しさん
2010/03/11(木) 18:08:24重ね重ね申し訳ない。
「Swingの画面を印刷するにはどうすればよい」の話じゃなかったんならオレが謝る。
「スクロールで見えてない部分も含め印刷させる」の話じゃなかったんならオレが謝る。
「Word XML 出力 & Desktop#print()」がSwingなのかスレ違いなのかはオレもよくしらん。
0260デフォルトの名無しさん
2010/03/11(木) 18:12:010261デフォルトの名無しさん
2010/03/11(木) 18:18:440262デフォルトの名無しさん
2010/03/11(木) 18:19:390263デフォルトの名無しさん
2010/03/11(木) 18:32:57結局Swingの画面をjavaのコードだけで印刷って出来ないんですか?
デスクトップの機能を使ってなんとかできないですかね…
Wordの差し込み印刷はバージョンによって動作が違うし、Linuxじゃ動かないのでパスしたいんです。
0264デフォルトの名無しさん
2010/03/11(木) 19:50:51既成コンポーネントやコンテナのprint()がどこまでまじめに印刷に対応してるかはレッツトライ
スクリーンキャプチャがしたいならjava.awt.Robotだ。
0265デフォルトの名無しさん
2010/03/11(木) 22:13:33アプレットを作りました。
これをブラウザ(IE6)でHTMLから呼び出して、
ボタンを押してファイルダイアログを呼び出します。
この開いているファイルダイアログを放置して
呼び出し元のウィンドウをクリックすると
クリックするたびにコンソールに例外がモリモリ出ます。
↓こんなの
Exception occurred during event dispatching:
java.lang.NullPointerException: null pData
at sun.awt.windows.WComponentPeer._requestFocus(Native Method)
at sun.awt.windows.WComponentPeer.requestFocus(Unknown Source)
at java.awt.Component.requestFocusHelper(Unknown Source)
以下略
これを出さないようにしたいのだけれど調べてもさっぱりわかりませぬ。
これってJavaのバグなのかな?
それとも何かしなきゃいけないことがあるのかな!
助けてエスパー!
0266デフォルトの名無しさん
2010/03/11(木) 22:19:150267265
2010/03/11(木) 22:24:17ふるーいアプレットのシステムを
ポーティングするお仕事でこの問題が見つかったのですが
事象の起こし方もすごい簡単なのに
調べても調べてもちっとも出てこないので
泣きそうです
HTMLから呼び出すとモリモリなんだけど
アプレットビューワーから呼び出すと起きないのですよ
0268デフォルトの名無しさん
2010/03/11(木) 22:35:44http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829326
0269デフォルトの名無しさん
2010/03/11(木) 22:38:290270デフォルトの名無しさん
2010/03/12(金) 09:19:25あるいはブラウザとの相性が悪かったか。
実害がないなら放置していいんじゃないかな。
0271デフォルトの名無しさん
2010/03/12(金) 15:25:24RMIはもう使用したくないとのこどで、大幅改修はせずに移行したいとのことです。
まぁ、その辺は言いたいことはあるんですが、この不景気なもので来るもの拒まずです。工数が増える分には。
そこでまずRMIのインターフェースはあまり変えないということで、
メソッド呼び出しのリモートプロシージャの考え方を踏襲することに。
Swingにhttpクライアントを入れて"multipart/form-data"でデータを送信します。
データはRMIで使用した全ての引数でシリアライズした中身をファイルアップロードで送ります。
ポップ引数は2つで、リモートクラス名とメソッド名。シリアライズを解凍して(引数の配列)、
リモート側で(httpサーバ)メソッドインボークする感じです。
レスポンスは"text/plain"で、RMIの戻り値のシリアライズです。
このやり方はいかがなものでしょうか?
改善案や便利な方法があればお願いします。
落とし穴などもあれば。
Swing→httpは外せないってところでお願いしますm(__)m
0272デフォルトの名無しさん
2010/03/12(金) 15:32:33使ったことないけど。
0273デフォルトの名無しさん
2010/03/12(金) 16:04:30なんすかそれ
0274デフォルトの名無しさん
2010/03/12(金) 16:30:26まあ金貰えるなら言う通りに実装してやればおk。
0275デフォルトの名無しさん
2010/03/12(金) 16:42:23SOAP に置き換えりゃ良いんじゃねぇの。
0276デフォルトの名無しさん
2010/03/12(金) 17:43:15RMIとHTTPってレイヤが違うような…?
0277デフォルトの名無しさん
2010/03/12(金) 22:02:48Swing関係なくね?
0278デフォルトの名無しさん
2010/03/12(金) 22:04:220279265
2010/03/13(土) 01:43:58気にかけていただいてありがとうございます
例外の内容で調べて同じのは出てこなかったけど
「Defaultmodel.なdialogが云々でバグです!」
といったような内容のがBugDataBaseでボロボロ出てくるので
指定しなくてもモーダルだと主張しているFileDialogの
フォーカスの処理とブラウザから呼び出した際の相性に問題があるんだと思います。
(自分でmodalを指定するDialogだと同じ操作をしてもこの問題は起きません)
お客さんには事例を寄せ集めて
「我々のせいじゃないし、どうにもできないので勘弁していただきたい!」
と主張してみることにします。
ありがとうございました。
0280デフォルトの名無しさん
2010/03/13(土) 04:32:080281デフォルトの名無しさん
2010/03/14(日) 10:33:40そんな欠陥のある言語を選択したのはお前の会社のミスだろ?
それにJavaはオープンソースなんだろ?
中追ってお前のところで直せよ
そしたら>>279はExceptionを握りつぶしてこう言ってやるのさ
問題ありませんってね
HAHAHA
0282デフォルトの名無しさん
2010/03/14(日) 10:39:450283デフォルトの名無しさん
2010/03/15(月) 01:08:29明らかに向いてないというか、能力足りてないだろう。
0284デフォルトの名無しさん
2010/03/15(月) 01:40:430285デフォルトの名無しさん
2010/03/15(月) 03:22:240286デフォルトの名無しさん
2010/03/15(月) 04:20:28馬鹿にはプログラミングは向いてないよ。
0287デフォルトの名無しさん
2010/03/15(月) 05:29:510288デフォルトの名無しさん
2010/03/15(月) 07:44:340289デフォルトの名無しさん
2010/03/15(月) 11:22:12いくら優秀でもバグがゼロにはならない。
>>283に従うと、バグを混入させるプログラマは辞めなければならない。
したがって、最終的には全てのプログラマは辞めなければならない。
0290デフォルトの名無しさん
2010/03/15(月) 11:49:360291デフォルトの名無しさん
2010/03/15(月) 14:37:43作った香具師出てこいよ。
0292デフォルトの名無しさん
2010/03/15(月) 15:05:30マ板へどうぞ。
0293デフォルトの名無しさん
2010/03/16(火) 20:53:14あいつら池袋のヤベェ工房から買ったヤニでトんでんだもん。
どうでもいいけど、池袋に溜まってる工房ってだいたい病気持ってるよなw
まじ怖いわw
街中で堂々とコンジローマ自慢してんじゃねえよwくせえw
0294デフォルトの名無しさん
2010/03/17(水) 12:17:560295デフォルトの名無しさん
2010/03/17(水) 19:28:45そういう現場を生で見たことないし。
だからまだいい方。
三軒茶屋あたりでうろついてるのは、本当にどうにかしてほしい。
あそこは深夜になるとリアル北斗。
0296デフォルトの名無しさん
2010/03/17(水) 19:34:13マ板でどうぞ。
0297デフォルトの名無しさん
2010/03/20(土) 11:10:39いまどき香具師って……
0298デフォルトの名無しさん
2010/03/20(土) 12:11:20たまに使っている人いるよな
死語だけど
0299デフォルトの名無しさん
2010/03/20(土) 12:15:45元ネタがネットじゃなくて小説だからかな
0300デフォルトの名無しさん
2010/03/20(土) 20:38:530301デフォルトの名無しさん
2010/03/20(土) 20:45:230302デフォルトの名無しさん
2010/03/21(日) 04:54:290303デフォルトの名無しさん
2010/03/23(火) 09:47:31JDesktopPaneを使っていて、JInternalFrame間のDnD中に、アクティブなフレームを
切り替えたいと思っています。
Windowsプラットフォームだと、CTRL-F6で内部フレームが切り替わりますが、
ドラッグ中だと切り替わりません。
0304デフォルトの名無しさん
2010/03/23(火) 10:40:52まずそのUI設計をやめたら?
0305デフォルトの名無しさん
2010/03/23(火) 14:31:090306デフォルトの名無しさん
2010/03/23(火) 14:36:290307デフォルトの名無しさん
2010/03/23(火) 18:15:390308デフォルトの名無しさん
2010/03/23(火) 19:00:18ExplorerやNautilusのように、ウインドウ内のドロップ対象で動作が変わるのですが、
そのような作りは一般的ではないのでしょうか。
ドロップ元とドロップ先が完全に見える状態にウインドウを並べてドラッグ&ドロップするのでしょうか。
それとも、CLIしか使わないのでわからない、ということでしょうか。
>>305
Windows Explorerでファイルドラッグ開始
→ALT+TABでドラッグ対象ウインドウの非表示部を表に出す
→隠れていた部分のアイコンにドロップ
みたいなことです。
>>307
ドロップされる位置によって動作が変わります。
0309デフォルトの名無しさん
2010/03/23(火) 21:13:110310デフォルトの名無しさん
2010/03/23(火) 22:59:06あれと似たような感じなのかな。
0311デフォルトの名無しさん
2010/03/24(水) 00:14:110312デフォルトの名無しさん
2010/03/24(水) 00:17:430313デフォルトの名無しさん
2010/03/24(水) 00:40:020314デフォルトの名無しさん
2010/03/24(水) 00:44:35これで来るわけ?
↓
0315デフォルトの名無しさん
2010/03/24(水) 01:14:110316デフォルトの名無しさん
2010/03/24(水) 01:24:170317デフォルトの名無しさん
2010/03/24(水) 01:27:560318デフォルトの名無しさん
2010/03/24(水) 02:14:30マックって旨いよな!
0319デフォルトの名無しさん
2010/03/24(水) 03:14:110320デフォルトの名無しさん
2010/03/24(水) 09:05:11分秒合わせてくるとか、何コレコワイwwwww
0321デフォルトの名無しさん
2010/03/24(水) 11:45:520322デフォルトの名無しさん
2010/03/24(水) 14:50:560323デフォルトの名無しさん
2010/03/25(木) 11:27:370324デフォルトの名無しさん
2010/03/25(木) 11:34:090325デフォルトの名無しさん
2010/03/25(木) 11:44:49フレームワークというかライブラリ?
0326デフォルトの名無しさん
2010/03/25(木) 11:51:42Visual Swing for Eclipse かな
0327デフォルトの名無しさん
2010/03/25(木) 13:25:280328デフォルトの名無しさん
2010/03/25(木) 14:03:10というか、swingの印刷のサイトがなさ過ぎ…
あまりやんないんですかね
0329デフォルトの名無しさん
2010/03/25(木) 14:45:01netbeans platformでおk
まあこっちはミドルウェアに近いが。
たとえばなんだろうか、専ブラの類の規模を作ろうとするとApp Frameworkでは物足りない。
もとからSwing初学者がjavaの流儀でGUI作るのを容易にする目的のものだからね。
それがJava 5のEoDの一環でJDKに含まれるようになるだけだから。
#俺はTiming Framework入れて欲しい。Swing Labsの成果はもっと取り込んでいいと思う。
0330デフォルトの名無しさん
2010/03/25(木) 18:46:040331デフォルトの名無しさん
2010/03/25(木) 18:49:37あと自分とこの要件向けにドメインフレームワーク作るだけだろ。
0332デフォルトの名無しさん
2010/03/25(木) 18:52:46ドメインフレームワーク?
0333デフォルトの名無しさん
2010/03/25(木) 21:52:330334デフォルトの名無しさん
2010/03/26(金) 00:41:08おまいらSwingで何つくってんだ?
ゲームのマップエディタつくったんだが、遅くて、見た目もイビツで
恥ずかしくて公開できやしない。
0335デフォルトの名無しさん
2010/03/26(金) 01:00:44それ Swing のせいなの?
0336デフォルトの名無しさん
2010/03/26(金) 02:24:500337デフォルトの名無しさん
2010/03/26(金) 04:36:590338デフォルトの名無しさん
2010/03/26(金) 10:27:46googleの入力補てんみたいなものです。
自作の必要あり?
0339デフォルトの名無しさん
2010/03/26(金) 10:45:21標準にはない。
原理的にはコンボボックスのエディターが持っているテキストが変更
されるたびに、その時点のテキストに応じてモデルが返す候補一覧を
変化させればよい。
例(ソース付き): http://terai.xrea.jp/Swing/ComboBoxSuggestion.html
0340デフォルトの名無しさん
2010/03/26(金) 13:24:56Swing以外で、サクサクで見た目も良いツールつくれるなら、そっち使えば良い。
無能ほど他人のせいにしたがる。
しかも無能は自分の無能さに気づく能力も無い。
0341デフォルトの名無しさん
2010/03/26(金) 22:37:45オープンソースにして公開すれば、
誰かが高速描画仕様に修正してくれるんじゃないかな。
ここには有能な人も多いみたいだし。
俺は嫌だけどね。
0342デフォルトの名無しさん
2010/03/27(土) 04:10:43金払ってプログラマに拘束化してもらうのが確実。
0343デフォルトの名無しさん
2010/03/27(土) 07:36:53どの程度描画を高速化できるのか興味あるね。
さぞかし有能なコードを書いてくれるんだろうよ。
まずはソースをうぷだ。
0344デフォルトの名無しさん
2010/03/27(土) 09:19:03ソースについて何の評価も貰えなかった・・・
そんな俺は腐ったミカンですか?
0345デフォルトの名無しさん
2010/03/27(土) 09:21:540346デフォルトの名無しさん
2010/03/27(土) 09:27:070347デフォルトの名無しさん
2010/03/27(土) 10:29:571.閲覧者のレベルが低かった
2.閲覧者の得意分野が違っていた(学校、仕事、趣味、ゲームetc.)
3.問題のある部分は見当たらなかった
4.ソースが巨大すぎて読む気が失せる
5.あまりにも低レベルすぎて指摘のしようがない
6.誰も見てくれなかった
7.その他
>>344
もう1度ここでうぷってみたら?有能者が応えてくれるんじゃないの
0348デフォルトの名無しさん
2010/03/27(土) 10:59:18凄く速いのかな
0349デフォルトの名無しさん
2010/03/27(土) 11:03:42あぁネタだったんだなぁ
と思ってしまう
0350デフォルトの名無しさん
2010/03/27(土) 11:16:441、3、4、6はありえないと思う。
5は、そこまでひどくないとは信じたい
JAVAの勉強で作ったゲームなんだけど・・・
何度も晒すのは、ちょっと気が引ける・・・
ゲームは、まぁまぁおもしろいとは言ってくれたけど
0351デフォルトの名無しさん
2010/03/27(土) 11:25:43話はそれからだ
0352デフォルトの名無しさん
2010/03/27(土) 11:25:530353デフォルトの名無しさん
2010/03/27(土) 11:46:16http://toku.xdisc.net/cgi/up/qqq/nm22064.zip
かなり不器用な処理してると思うけど、
まだまだ勉強中なので
いろいろ教えてもらえると嬉しい
0354デフォルトの名無しさん
2010/03/27(土) 12:20:48implements Config はやめて static import
NyoroArrayは事実上双方向リストなので、LinkedListあたりを利用
できないか考える。
Foodのもつ画像は、 static イニシャライザを使って、クラス全体で
10個持てばよいと思う。
今はノーマルエサがダイエットエサの出現状態まで管理までしている
ようだけど、ノーマルエサとダイエットエサは同時に各1つしか出な
いみたいなので、ゲーム世界側でそれぞれ1つずつ持つのがよいのでは
ないだろうか。
では、ごはんー。
0355デフォルトの名無しさん
2010/03/27(土) 13:22:40値が0と1しかないのなら、intじゃなくてbooleanを使ったほうがよいのでは。
初期化
private boolean status = false;
メソッド
public void press() { status=true; }
public void release() { status=false; }
public boolean isPressed() { return status; }
0356デフォルトの名無しさん
2010/03/27(土) 14:18:47可愛い女の子の絵だけで、お腹が一杯です
0357デフォルトの名無しさん
2010/03/27(土) 14:20:09問題にしてるのはマップエディタの方では?
0358デフォルトの名無しさん
2010/03/27(土) 14:44:25http://toku.xdisc.net/
0359デフォルトの名無しさん
2010/03/27(土) 14:49:47向こうのスレで「面白い」とだけコメントしてたものです…
ぱっと見て気になったのは>>354で書かれてる最初のものですね。
あと全般的に、定数は自分だったらEnum使うかな。
Enum使うと振る舞いを持たせられるので夢がひろがりんぐ。
Nyoro2のメインメソッドの中身はSwingUtilities.invokeLater使ってEDTで呼ぶべきでしょうね。
http://java.sun.com/docs/books/tutorial/uiswing/concurrency/initial.html
それとJava関係ないですけど、NetBeansのnbproject/privateディレクトリ以下は
配布しない方が良いかもです。
http://netbeans.org/kb/docs/java/import-eclipse_ja.html の"NetBeans プロジェクトファイル"
0360デフォルトの名無しさん
2010/03/27(土) 14:53:18ゲームの人とマップエディタの人は別人じゃないの?
0361デフォルトの名無しさん
2010/03/27(土) 15:00:44なんてことになったらウレシくてティンコ旅立ち
0362デフォルトの名無しさん
2010/03/27(土) 15:03:270363デフォルトの名無しさん
2010/03/27(土) 16:18:30そんなとこをエスパー予想。
…いや、Wizardryレベルのマップならそれで十分なんだけどさ
0364デフォルトの名無しさん
2010/03/27(土) 16:56:23ゲームは全然知らないけど、それでも問題が多いのは分かる。
たぶん354, 355のような指摘は100個くらいは挙げらるし、クラス設計にも問題がある。
(が、設計の能力はすぐには身につかない)
普通の職業プログラマに対してなら、『プログラミング作法』、『Effective Java 第2版』、
『Java言語で学ぶデザインパターン入門』あたりの書籍を勧めるところだけど、ゲームは
文化の違い等があるから、たぶんこれらの本を読むのは遠回りになるだろうな。
>>355
おまえもいろいろと酷そうだなw
boolean型でstatusなんて名前はない(名前は重要だぞ)
private boolean pressed = false;
public boolean isPressed() { return pressed; }
普通はこう。(ただしクラス設計としては問題がある)
0365デフォルトの名無しさん
2010/03/27(土) 21:11:34ていうか、変数名に動詞を使うのにはめちゃくちゃ違和感がある
俺の場合、動詞から始まる名前はメソッドにしか使わないからなぁ
0366デフォルトの名無しさん
2010/03/27(土) 21:20:09status = true とか return status とか見てもなにしてんのかわかりにくいだろ。
あと、 pressed は動詞じゃないから。
0367デフォルトの名無しさん
2010/03/27(土) 21:28:38pressedなら押したかどうかなんだなと分かる
まあキーなら押したかどうかしか状態がないだろという話もあるが
メソッドと命名の方向性は合わせた方がいいと思う
0368デフォルトの名無しさん
2010/03/27(土) 21:48:110369デフォルトの名無しさん
2010/03/27(土) 21:54:16http://www.objectclub.jp/community/codingstandard/CodingStd.pdf
これ以上の命名法の話題は命名系のスレでやった方がいいんじゃないかな。
0370334
2010/03/27(土) 21:56:30遅い理由はJTableのレンダラにJLabelを使っているからなんだけど手を抜こうとしたらこれが都合よかったのでそうしてるだけだし。
にしても、あとはSwingのせい。
DataGridView@C#でやったらどんだけ高速だったことか。
見た目がいびつなのは、レイアウトマネージャーの動作がキチガイだから。
SWTのGridLayoutが神レイアウトだと思うんだけど、これのSwing版発見したのでつかってみて
ttp://code.google.com/p/uface/issues/detail?id=8
掲示板添付のzipが使えた。
正式にはどこで公開されているのか知らん。英語わからんし。
0371デフォルトの名無しさん
2010/03/27(土) 22:01:10よくよく考えると結構重要なのかも
http://wisdom.sakura.ne.jp/system/java/swing/swing4.html
353のソースは、まあ、よくできてるんじゃね?
俺も初心者レベルなんで詳しいことはよくわからんがw
あとは…
ifが連なってるところはswichi にしたほうがいいとか(一般的には条件分岐よりも
ジャンプのほうが速いはず…だけどこれはコンパイラ依存か)、
女の子の画像は裸のほうがいいとか、そのくらいしかわからん。
個人的に、画像の直貼り付けは遅そうな感じがするけどどうなんだろうね。
(もちろん、速度を気にしないなら直貼り付けで全く問題ないけど)
画像データを配列に読み込んで、その配列を処理したほうが速い気がするんだけど、
それをやるとかなりソースが複雑になりそうだなあ。
0372334
2010/03/27(土) 22:06:05swtgridlayoutで見た目は完全に改善された。かなりオススメ
で、とりあえず俺はJavaもSwingも上級レベルで使えると自負してるけど
これで(公開できるほど)まともなアプリをつくるのは
不可能または、並々ならぬ努力が必要と思うので
本気でみんなが何をつくっているのか気になる。
何かまともなもん作ったって事例があったら教えてくれ。
0373デフォルトの名無しさん
2010/03/27(土) 22:08:09あまり関係ないけど、コンパイラ依存じゃなくてVM依存だと思うw
0374353
2010/03/27(土) 22:55:33こんなに沢山アドバイス貰えるとは思ってなかったよ
知らない単語も出てきてるし、参考URLまで貼ってくれてるしで、
いろいろ調べて勉強してみます。
ありがとうございました
ちなみに、トップの絵書いてくれた友達にも、
JAVA質問スレと、このスレで絵についてのレスされてる事を教えた所すごく喜んでましたw
0375デフォルトの名無しさん
2010/03/28(日) 00:03:48で、あんたは>>347のうちどれなの?
0376デフォルトの名無しさん
2010/03/28(日) 00:05:460377デフォルトの名無しさん
2010/03/28(日) 00:05:59> 別にこまってないし
じゃあなんで>>198から1ヶ月もこのスレで頑張ってるの?
0378デフォルトの名無しさん
2010/03/28(日) 00:07:45で、あんたは>>347のうちどれなの?
0379デフォルトの名無しさん
2010/03/28(日) 00:10:32誰と勘違いしてるの?バカなの?
0380デフォルトの名無しさん
2010/03/28(日) 00:21:390381353の友達
2010/03/28(日) 00:21:55皆さんのレス嬉しかったです><*
ありがとうございました><*
ttp://a-draw.com/contents/uploader2/src/up19034.gif
0382デフォルトの名無しさん
2010/03/28(日) 00:24:270383デフォルトの名無しさん
2010/03/28(日) 00:29:38なんだコイツ
受け狙いのつもりなのだろうか
0384デフォルトの名無しさん
2010/03/28(日) 00:31:30もう Java 総合スレで統一したらどうだ。
0385デフォルトの名無しさん
2010/03/28(日) 02:36:03どうせswingスレは普段過疎ってるから有効利用なんじゃねw
0386334
2010/03/28(日) 04:26:13おおおぉ、凄いチェック力。>>198書いたのすっかり忘れてた
このスレで頑張ってるというか、グチ&みんなが何つくってるのか興味で書き込みしてるだけなんだけど
.NETが性能も開発効率も見た目も圧倒的に良いのに、
いまだSwingにこだわる君たちの思考に興味がある
0387デフォルトの名無しさん
2010/03/28(日) 04:33:39.NET って UNIX 系 OS や Mac とかでも動いたっけ?
0388デフォルトの名無しさん
2010/03/28(日) 10:43:44java.netでもsf.netでもいいからSwingアプリ探してみなはれ。
0389デフォルトの名無しさん
2010/03/28(日) 15:31:24というかwinでMS製言語使うにしてもVC++だと思う。
0390デフォルトの名無しさん
2010/03/29(月) 00:42:14Windows Forms や WPF じゃなかろうか。
0391デフォルトの名無しさん
2010/03/29(月) 21:15:04この場合
1秒間隔でTimer起動→スレッド起動→バックエンド処理→待ち受け画面表示→イベント処理終了でswingスレッドを戻す
→バックエンド処理終了→Timerのstaticに終了フラグセット(継承して持たせた)
→Timer起動で呼ばれる→フラグ立ってるので待ち受け画面非表示
こんなことしないといけないんすかね…
あ〜1.6で書きたい。ただ1.5以上サポートなんで1.6依存でかけない…
0392デフォルトの名無しさん
2010/03/29(月) 21:42:41SwingWorkerをパッケージに含めてしまうというのも可能かも。
あるいは似たようなクラスを自分で書くとか。
0393デフォルトの名無しさん
2010/03/30(火) 00:33:051000x1000程度のJTableなら、全セルにイメージ貼り付けても、
スカスカ動くがな。
大方、全セルにJLabelをnewしてつっこんだとかだろ。
0394デフォルトの名無しさん
2010/03/30(火) 01:36:30https://swingworker.dev.java.net/
This project is a backport of SwingWorker included into 1.6.
0395デフォルトの名無しさん
2010/03/30(火) 10:10:401.5で使えるとかって書いてないんですけど使えるものなんですかね?
0396デフォルトの名無しさん
2010/03/30(火) 10:20:140397デフォルトの名無しさん
2010/03/30(火) 11:09:30を訳してみろ…
0398デフォルトの名無しさん
2010/03/30(火) 11:17:06http://e-words.jp/w/E38390E38383E382AFE3839DE383BCE38388.html
0399デフォルトの名無しさん
2010/03/30(火) 11:35:500400334
2010/03/30(火) 19:48:53newなんてするかい・・そこだけはりつけちゃる
public Component getTableCellRendererComponent(JTable table, Object data,
boolean isSelected, boolean hasFocus, int row, int column) {
MapTable mapTable = (MapTable) table;
if (!(mapTable.enableStartColumn <= column && column < mapTable.enableStartColumn
+ mapTable.enableLength)) {
this.setIcon(null);
} else {
if (data != null) {
int item = (Integer) data;
if (item != -1) {
PalletTableItem pi = palletTable.getValueAt(item);
if (pi != null) {
this.setIcon(pi.icon);
} else {
this.setIcon(null);
}
} else {
this.setIcon(null);
}
} else {
this.setIcon(null);
}
}
if (isSelected) {
this.setBorder(lineBorder);
} else {
this.setBorder(emptyBorder);
}
return this;
}
0401デフォルトの名無しさん
2010/03/31(水) 00:40:490402デフォルトの名無しさん
2010/03/31(水) 01:14:53動作には関係ないが、ソースは少し見やすくなったかもしれない。
public Component getTableCellRendererComponent(JTable table, Object data,
boolean isSelected, boolean hasFocus, int row, int column) {
MapTable mapTable = (MapTable) table;
Icon icon = null;
Integer item = (Integer) data;
if (mapTable.enableStartColumn <= column
&& column < mapTable.enableStartColumn + mapTable.enableLength
&& item != null && item != -1) {
PalletTableItem pi = palletTable.getValueAt(item);
if (pi != null) {
icon = pi.icon;
}
}
this.setIcon(icon);
this.setBorder(isSelected ? lineBorder : emptyBorder);
return this;
}
0403デフォルトの名無しさん
2010/03/31(水) 04:22:340404デフォルトの名無しさん
2010/03/31(水) 05:24:220405デフォルトの名無しさん
2010/03/31(水) 06:55:430406デフォルトの名無しさん
2010/04/01(木) 08:45:49後だし乙。
0407デフォルトの名無しさん
2010/04/01(木) 15:31:23それとも登録の前にソートして、ソートされた順番で登録しないといけないでしょうか?
0408デフォルトの名無しさん
2010/04/01(木) 16:07:36TreeNodeに対して children() を呼んだときにソート済みで返ってくればよいと思う。
UIよりはモデル側の問題。
0409デフォルトの名無しさん
2010/04/01(木) 20:20:00誰と戦ってんのおまえw
0410デフォルトの名無しさん
2010/04/02(金) 02:39:22お前だろ、粘着乙www
0411デフォルトの名無しさん
2010/04/06(火) 23:17:260412デフォルトの名無しさん
2010/04/07(水) 04:06:160413デフォルトの名無しさん
2010/04/07(水) 04:32:260414デフォルトの名無しさん
2010/04/08(木) 03:31:16マトモに表示できるのは Google トップくらいだ。
0415デフォルトの名無しさん
2010/04/08(木) 03:56:420416デフォルトの名無しさん
2010/04/08(木) 04:05:080417デフォルトの名無しさん
2010/04/08(木) 07:42:000418デフォルトの名無しさん
2010/04/08(木) 22:47:250419334
2010/04/11(日) 12:07:15んでもって君らが何つくってんのか教えてくれんの?
0420デフォルトの名無しさん
2010/04/11(日) 22:24:280421デフォルトの名無しさん
2010/04/12(月) 20:46:270422デフォルトの名無しさん
2010/04/13(火) 13:09:55要は、どのパネル、どのコンポーネントを開いていても呼ばれるイベントです。
WindowにWHEN_IN_FOCUSED_WINDOWのイベントをgetActionMap().put(action, action)するみたいな感じです。
0423デフォルトの名無しさん
2010/04/13(火) 13:10:500424デフォルトの名無しさん
2010/04/15(木) 10:17:51KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventPostProcessor(new KeyEventPostProcessor() {
public boolean postProcessKeyEvent(KeyEvent e) {
if (e.getID() == KeyEvent.KEY_PRESSED)
System.out.println(e);
return false;
}
});
このサンプルコードのようにすると出来るようです。
あとはKEY_PRESSEDの所と、System.out.println(e)の所を適切に変えればOKです。
1日掛けて調べました。。。
もし宜しければ、私のブログの応援クリックをしてもらえませんか?
http://study-blog.jugem.jp
0425デフォルトの名無しさん
2010/04/15(木) 10:21:33KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getID() == KeyEvent.KEY_PRESSED)
System.out.println(e);
return false;
}
});
0426デフォルトの名無しさん
2010/05/01(土) 20:59:02行ヘッダは追加されたのですが、
行ヘッダのJListでカーソル移動やマウスドラッグをするとJTable側がついてこず
JListだけがスクロールします。
JTable側も連動させるにはどうすればよいのでしょう??
0427デフォルトの名無しさん
2010/05/02(日) 21:41:40scrollPane.getRowHeader().addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
scrollPane.getViewport().setViewPosition(scrollPane.getRowHeader().getViewPosition());
}
});
これで、カーソル移動とマウスドラッグはOKでした。たぶん他も大丈夫かと思います。
もしよろしければ>>424のクリックをお願いします。
0428デフォルトの名無しさん
2010/05/03(月) 09:12:47削除ガイドライン違反
8. URL表記・リンク
宣伝・罠・実行リンク
・明らかに宣伝を目的としたリンク・クリックや訪問で課金が発生するもの等は、宣伝掲示板以外では削除します。
0429デフォルトの名無しさん
2010/05/03(月) 13:13:520430デフォルトの名無しさん
2010/05/03(月) 14:48:000431デフォルトの名無しさん
2010/05/03(月) 23:02:19悪気はないんですけどね。
まぁ無職で時間にゆとりがあるので、色々やっとるという訳です。
とりあえずクリックした人はいないようですw
どうにかやっていく方法はないものでしょうか。
1.質問が出る。
2.アフィリエイトをクリックしてもらう。(1クリック数円)
3.解答をする。
という形式にしたいなぁと思っております。
>>429,430
基本的にプログラム板は過疎っていますからね(^^;
0432デフォルトの名無しさん
2010/05/03(月) 23:03:370433デフォルトの名無しさん
2010/05/03(月) 23:33:06そこを何とかお願いします。
0435デフォルトの名無しさん
2010/05/04(火) 09:07:07あ、おはようございます。Give&Takeの精神でお願いします。
0436デフォルトの名無しさん
2010/05/04(火) 12:46:210437デフォルトの名無しさん
2010/05/04(火) 12:53:21>>422,426にも意見を聞きたいところですけど。
0440デフォルトの名無しさん
2010/05/10(月) 22:39:000441デフォルトの名無しさん
2010/05/10(月) 23:05:400442デフォルトの名無しさん
2010/05/10(月) 23:57:41それじゃ「1つのインスタンス」にはならないじゃん。
>>440
共有すべきはmodelであってviewじゃない。
0443デフォルトの名無しさん
2010/05/11(火) 00:04:46/ \ /\ キリッ
. / (ー) (ー)\ 共有すべきはmodelであってviewじゃない
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0444デフォルトの名無しさん
2010/05/11(火) 00:33:59つ http://pc12.2ch.net/test/read.cgi/tech/1178723829/
0445デフォルトの名無しさん
2010/05/11(火) 22:36:26ワロタ。
0446デフォルトの名無しさん
2010/05/12(水) 17:37:21描画する数だけインスタンスが必要。
0447デフォルトの名無しさん
2010/05/14(金) 00:08:320448デフォルトの名無しさん
2010/05/14(金) 01:29:42GUIコンポーネントは親を1つしか持てないから、複数のコンポーネントで1つの子を共有することができない。
参考: java.awt.Component とか java.awt.Container のソース。
0449デフォルトの名無しさん
2010/05/14(金) 01:31:590450デフォルトの名無しさん
2010/05/14(金) 10:36:09それもあるから親を1つしか持てないようになってるんだろう
0451デフォルトの名無しさん
2010/05/25(火) 10:07:14JFrame 2つつくって、片方は、javax.swing.plaf.metal.MetalLookAndFeel
もう片方は、UIManager.getSystemLookAndFeelClassName() でとってきたやつを
適用する、みたいなことはできないようになってるってことでいい?
0452デフォルトの名無しさん
2010/05/25(火) 10:14:23SwingUtilities#updateComponentTreeUI() で指定してやれば
見た目は別々になるんじゃないの。全くお勧めは出来ないが。
0453デフォルトの名無しさん
2010/05/25(火) 10:28:240454デフォルトの名無しさん
2010/05/25(火) 10:32:22JDialog.setDefaultLookAndFeelDecorated(true);
の事か?
0455デフォルトの名無しさん
2010/05/25(火) 18:33:26http://www.javakb.com/Uwe/Forum.aspx/java-setup/11894/Copying-the-View-of-a-JPanel
このページの2番目のサンプルコードがとても参考になると思います。
>>451
VMを2つ起動という手も・・・ないか。
0456デフォルトの名無しさん
2010/05/25(火) 20:26:49できるけど挙動が狂うって話があった気がする。
0457デフォルトの名無しさん
2010/05/25(火) 20:33:23基本できないよな 少なくともAPI作り手はそんなこと想定しなていようだな
サンキュー
0458デフォルトの名無しさん
2010/05/25(火) 23:53:25LookAndFeel laf = new javax.swing.plaf.metal.MetalLookAndFeel();
MetalTheme theme = new javax.swing.plaf.metal.DefaultMetalTheme();
MetalLookAndFeel.setCurrentTheme(theme);
UIManager.setLookAndFeel(laf);
多分これのことかな?
0459デフォルトの名無しさん
2010/05/30(日) 00:19:25あたりに関連して、
frame1 : JFrame --- button1 : JButton
frame2 : JFrame --- button2 : JButton
みたいに、なってて、button1とbutton2が同じモデル buttonModel0をsetModelされてるとき、
frame1をクローズして、frame1がGCで回収された後でも、button1は、buttonModel0からリスナ経由で
参照されてるから残る。
もちろん、button1を再利用したいときもあるけど、そのままメモリリークになりやすい。
どこかのタイミングでプログラマの責任で、button1.setModel(null)して、モデルへの参照を切るべきなんだろうけど、
なんか、定石みたいな書き方ありますかね?
0460デフォルトの名無しさん
2010/05/30(日) 00:27:38frame1 のクローズイベントで切り離す。
0461デフォルトの名無しさん
2010/06/06(日) 22:28:00これを無効にしたいんですがどのAPIでしょうか。
それにしてもJTableは複雑ですよね・・・
0462デフォルトの名無しさん
2010/06/06(日) 22:53:530463デフォルトの名無しさん
2010/06/06(日) 23:12:24dbl clickやF2でセルを編集できるようになりますがこれをoffにするにはどうするんですか?
0464デフォルトの名無しさん
2010/06/06(日) 23:49:21本来は自作TableModelを作るべきだと思うが。
0465デフォルトの名無しさん
2010/06/07(月) 00:33:23javadocみるとそれしかないかなって思ってましたけど、一番単純な方法はやはりそれでしょうね。
javaはclassの継承を中心とした言語設計なのに、swingはDIというかMVCというかプラグインというか、java langにとってswinの設計思想はまったく異質なので非常に複雑なライブラリとなっています。
愚痴を言うわけではないですが複雑な割にこの程度の機能(それもtableとして当たり前のような機能)しかないswing.tableなら、
少なくともhtml,dom,xmlやgridbag + cellの自作コンポでほとんど用が足りると思います。
javascript.prototypeのような考えならまた違ったのかもしれませんが、それをいうとあとの祭りなのでしょうね。
それと日本語のswingを扱ったHPは皆無ですね。グーグルでもこのスレがよくヒットします。
0466デフォルトの名無しさん
2010/06/07(月) 00:41:38plubableじゃなくてcssや、顧客一人一人に合わせたskin(script)のようにもっと軽く設定できない
(つまりskin,look,feelingについては固定の設定は存在しないという設計思想)と、UI開発者は敬遠するかなって思います。
webクリエーチャ達の髪の毛の軽さと同じく、JEditorPaneのhtmlエディタもしかりです。
0467デフォルトの名無しさん
2010/06/07(月) 05:26:11SwingはJavaプログラマのためのライブラリです。
htmlやcssの方が得意な人のためのライブラリではありません。
SwingにhtmlやcssでUIを設定できないと文句を言うのはお門違いだと思います。
0468デフォルトの名無しさん
2010/06/07(月) 13:05:580469デフォルトの名無しさん
2010/06/07(月) 15:55:54JEditorPaneは最初はやる気満々だったけど扱おうとするドキュメントが方言だらけで投げた。
というかここら辺のフォローはSwing labの管轄なんだが。
まあ俺々思想が強すぎて>>465の意図がよく分からんが。
0470デフォルトの名無しさん
2010/06/07(月) 16:02:480471デフォルトの名無しさん
2010/06/07(月) 16:19:01それら機能の追加などカスタムなことをユーザ(開発者)が簡単にできるようにしないと汎用コンポでもないし汎用ライブラリ(javax swing)としても意味ないです。
少なくともjava,c++(qt3,qt4),dotnet,gameライブラリを当たり前のように使える開発者は時間があればそれぐらいのコンポネントは普通に作れますよ。
swing labのコンポネントはnetbeans apiに組み込んじゃったほうがいいんじゃないかと思います。
今はjavafxでしょうし、lgplのようですし、せっかく有用なコンポなのでswtと同じ感じでnetbeansを特に使う人達への特権ってことで。
0472デフォルトの名無しさん
2010/06/07(月) 16:42:550473デフォルトの名無しさん
2010/06/08(火) 11:39:060474デフォルトの名無しさん
2010/06/08(火) 21:52:130475デフォルトの名無しさん
2010/06/26(土) 19:50:110476デフォルトの名無しさん
2010/07/02(金) 10:14:550477デフォルトの名無しさん
2010/07/02(金) 13:15:39# 「Java 高速 GUI SWT」に対する皮肉も込めて…
0478デフォルトの名無しさん
2010/07/03(土) 02:29:19JFrame→JDialog(モーダル)→JDialog(モーダル)の画面遷移で、
最後のJDialogをdispose()すると、最後のJDialog残像が残るんですが、(何回かやってると)
dispose()した後、2番目のJDialogをrepaint()しないといけないもんですか?
実際はもうちょっと複雑で、
2番目のJDialogの中にtableがあってTableのセル内のボタンを押した時に、
3番目のJDialogが開くようになってます。
そこで、選択した物をテーブルに表示するという処理になります。
3番目のJDialogを引数無で作成すると残像は起こらないんですが、
オーナー(2番目のJDialog)を指定してJDialogを作成した場合のみ問題が発生します。
0479デフォルトの名無しさん
2010/07/03(土) 09:30:080480デフォルトの名無しさん
2010/07/03(土) 18:04:51JavaDocの通り、setVisible(false)をしてからとか、
windowクラスのtoBack()をしてからdispose()をするなど、
色々と試してみたんですがうまくいきません。(モーダルなのでtoBack()は効くかもわかりませんが(汗))
あとは、windowsの問題かと思い、VM引数のnoddraw=trueでやってみたりもしたんですがダメでした・・
奥が深いですね・・・
0481デフォルトの名無しさん
2010/07/03(土) 18:19:520482デフォルトの名無しさん
2010/07/03(土) 23:55:020483デフォルトの名無しさん
2010/07/04(日) 18:14:320484デフォルトの名無しさん
2010/07/04(日) 23:58:22確認してみます。
色々と助言ありがとうございます。
解せないのは、
オーナーを指定した場合と、していない場合の動作ですが
まだわからないことが多いので勉強してみます。
0485デフォルトの名無しさん
2010/07/09(金) 12:48:410486デフォルトの名無しさん
2010/07/17(土) 17:38:40調べてみたところフォーカス指定にはFocusTraversalPolicyを自力実装する必要があるようなのですが、
フォーカス順が複数のパネルにまたがっている場合にどうすれば良いのか解りません。
(同一パネル内の場合はsetNextFocusableComponentと同じ動きをするpolicyを実装して想定どおりに動かすことができました)
親JPanelの中にボタンと2つの子JPanel 1, 子JPanel 2を配置して、
それぞれの子パネルにいくつかのコンポーネントが在るような画面で、
子供1と2が混在するフォーカス指定をする方法を教えていただけませんか。
例えば、子1.テキスト1 → 子2.ボタン1 → 子2.ボタン2 → 子1.テキスト2 → 親.ボタン → 子1.テキスト1といった感じです。
長文失礼しました。
よろしくお願いします。
0487デフォルトの名無しさん
2010/07/17(土) 22:24:120488デフォルトの名無しさん
2010/07/18(日) 01:40:43そんなのがあったんですね。。。orz
0489デフォルトの名無しさん
2010/07/18(日) 12:19:07requestFocus()を実行するのは誰の仕事になるんでしょうか。コンポーネントが自分の次が誰なのか知っていないといけない実装は避けたく思っています。
何より次のフォーカスがそのコンポーネントの所属していないパネル上の場合は、
親を経由してしかもその先のパネルの情報まで持っていないとダメな強い依存関係が生まれませんか?
と、ここまで書いてきてmediator作れば良いのかなと少し思った。
0490デフォルトの名無しさん
2010/07/20(火) 13:44:44親JPanelから子JPanel は参照できるし、依存してもいいんだよね?
やりたいようにフォーカスしてくれる FocusTraversalPolicy 実装して
親JPanelに setFocusTraversalPolicy(policy) するだけじゃない?
0491デフォルトの名無しさん
2010/07/21(水) 19:00:35レスありがとうございます。
親Panelに独自traversalPolicyを設定しただけではダメでした。
親に対してsetTraversalPolicyProvider(true)することで期待した動作になりました。
ただ、今度は別のパネルに一度でも切り替えるとrequestFocusInWindow()が動作しない(falseが戻り、フォーカスも当たらない)状況に。
初めから画面遷移とフォーカスでハマると考えていましたけど、まさかここまでとは。
JComboBoxのeditableの値で異なる動作になるとか色々とハマりどころが多いので、
どうやってその辺りのハマり回避と使い勝手のバランスをとるかを考えると難しいですね。
0492デフォルトの名無しさん
2010/07/23(金) 13:05:540493デフォルトの名無しさん
2010/07/23(金) 15:38:19画面遷移とか、別パネルに切り替えとか後出しで出てくるし…
どういうGUIを作ってるのか書かないとアドバイスのしようもないよ?
# たぶん非標準的UIでSwingを変な使い方して自らハマリ所に突撃してるんだと思うが…
0494デフォルトの名無しさん
2010/07/23(金) 21:45:41ありがとうございます。
フレームにポリシー設定というのは知りませんでした。
おかげさまで全パネルで自由なフォーカス制御ができるようになりました。
情報が後出しになっているとのご指摘については申し訳ありません。
Swingを学び始めて何をどう実現できるのかを色々と試しているところなので、それぞれの問題はすべて別のプロジェクトになっています。
requestFocus()の問題は、CardLayoutにパネルを2枚add()して片方のパネルのボタンを押すともう片方のパネルを表示(CardLayout#show())する実装で、
初回表示では正しくフォーカスされるのに、2回目以降ではrequestFocusInWindow()がfalseを戻して正しくフォーカスされない状態です。
Swingはブラウザベースのアプリに比べてできることが格段に多いので楽しみながら学ばせてもらってます。
何が実現可能で何が実現困難なのか、ActiveX連携とかOCX周りとかもためしたいなと思ってます。
0495デフォルトの名無しさん
2010/08/02(月) 11:56:19テキストフィールドのフォーカスゲインとフォーカスロストのイベントで色指定すればできたのですが
複数のテキストフィールドに対して統一的な設定をする方法があったら教えてもらえないでしょうか。
例えば100個のテキストフィールドがある時にゲインとロストで合わせて200個のメソッドを書かずにすませたいんです。
よろしくお願いします。
0496デフォルトの名無しさん
2010/08/02(月) 13:28:46どう考えてもメソッド書くのは2個でいいだろ…
0497デフォルトの名無しさん
2010/08/02(月) 15:09:29レスありがとう。
2個ですませられるやり方が知りたいです。
自分の知ってるやり方だとテキストフィールドのインスタンスにリスナー登録するから
インスタンスの数に比例してメソッドの数が増えるんです。
0498デフォルトの名無しさん
2010/08/02(月) 15:42:05やり方としては全く同じだと思うが。
FocusListener colorChangeFocusListener = new FocusListener{
public void focusGained(FocusEvent event) {
JComponent target = (JComponent)event.getSource();
target.setBackground(Color.CYAN);
}
public void focusLost(FocusEvent event) {
JComponent target = (JComponent)event.getSource();
target.setBackground(Color.WHITE);
}
}
JTextField[] textFields = new JTextField[10];
for (int i = 0;i < textFields.length;i++){
textFields[i] = new JTextField("Hello");
textFields[i].setColumns(10);
textFields[i].addFocusListener(colorChangeFocusListener);
mainPanel.add(textFields[i]);
}
0499デフォルトの名無しさん
2010/08/03(火) 12:11:14サンプルコードありがとうございました。
やっぱり個々のフィールドにリスナー定義というのは避けられないんですね。
内容は498さんのコードそのままになりそうですがリスナーグループみたいなモノが作れないか考えてみます。
0500デフォルトの名無しさん
2010/08/03(火) 15:12:33リスナーグループとかって作るのは簡単だろうけどそれって本当に必要なの?
同じ性質のTextFieldを大量につくるんならサブクラス化したっていいんだし
フレーム内のコンポーネントを再帰的にたどってリスナーをセットしてまわるコードだって
簡単に書けるだろうし…
0501デフォルトの名無しさん
2010/08/05(木) 21:33:560502デフォルトの名無しさん
2010/08/09(月) 19:39:23諸事情でネット使えないところに缶詰めでした。
体は大切にした方がいいよ、ホント。
さて、継承クラスを作るっていうのは思いつきませんでした。
早速作って色変え問題は解決です。
他にも似たような問題がいくつかあったのも同様のやり方で対処できました。
簡単なログイン画面作るだけで60時間とかかかって涙目になったけど今回使った部品のハマりそうなところは一通りハマった気がします。
あとはこのハマりどころをまとめて発表すればおしまい。
ほんとにありがとうございました。
0503デフォルトの名無しさん
2010/08/13(金) 04:02:06↓のように、生成したFrameにWindowListenerを追加し、
WindowListener.windowClosing()にてdispose()を呼び出すようにしています。
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Frame frame = new Frame("Frame" + i);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
Window window = e.getWindow();
window.setVisible(false);
window.dispose();
}
});
frame.setVisible(true);
}
});
これで閉じるボタンを押すと確かにframeは非表示にはなりますが、
どうもframeのリソースが解放されないようなのです。
小規模かつ小数のウィンドウを生成/破棄するなら特に問題ありませんが、
Frameを拡張したクラスのフィールドに大きな画像などをもたせ、
生成/破棄を繰り返すなんてことをするとヒープ領域不足に陥ってしまいます。
frameを完全に破棄するにはどのように記述すれば良いのでしょうか。
0504503
2010/08/13(金) 06:24:14画像などの保持をFrame拡張クラスでなくComponent拡張クラスにさせてFrameにadd、
disposeする前にremoveAll()を呼び出すようにしてみたところ、
画像の分のメモリ領域が回収されるようになり、
ヒープ領域不足にはならなくなりました。
Frameの分のメモリは回収されないので、根本的な解決にはなっていませんが、
取りあえず10000回開閉しても大丈夫だったので、この方向で行こうかと思います。
引き続き、何か良い方法があればよろしくお願いします。
0505デフォルトの名無しさん
2010/08/13(金) 08:13:52imageをfreeしたいなら用途が違うけど、removeNotifyとか近いかも。
0506デフォルトの名無しさん
2010/08/13(金) 10:02:020507デフォルトの名無しさん
2010/08/13(金) 11:21:160508503
2010/08/17(火) 02:03:33返信ありがとうございます。
java.awt.Frameを使用しています。
Window、JWindow、Dialog、JDialog、JFrameでも試してみましたが、同じ問題が発生しました。
>505
imageも含む、Frameインスタンスをfreeしたいと思っています。
imageのfreeのみであれば、>504の方法で実現できたのですが、
どうもFrame自体はfreeされないようなので、何とかならないかなあという状況です。
removeNotify()はツールキット以外からは呼ばないようにと
ドキュメントに記述されていたので、触れないようにしていました。
試しにprintデバッグしてみましたが、
どうやらウィンドウを閉じる過程で内部的に呼び出されているようでした。
>506
リークしないようにFrameへの参照をすべてローカル変数にしてみましたが、ダメでした。
Window.getWindows()で取得できるWindow配列にはdisposeしたウィンドウも含まれていたので、
Windowのstaticフィールドか何かに参照が残っているのかもしれません。
dispose()のドキュメントに以下のような記述がありました。
「Window およびそのサブコンポーネントは、pack または show を呼び出してネイティブリソースを再構築すればふたたび表示可能にできます。
再生された Window およびそのサブコンポーネントの状態は、Window が破棄された時点のそれらのオブジェクトの状態と同じです。
破棄と再生の間の追加変更は考慮されません。」
「破棄された時点のオブジェクトの状態」で再生されるってことは、それがどこかに保存されているってことですよね。
ひょっとして一度Windowを生成したら完全な破棄はできなかったりするんでしょうか。
>507
Swingの場合はwindowClosed()で何かをすれば解決できるということですか?
0509503
2010/08/17(火) 02:30:18検証用のコードは以下のような感じです。
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
for (int i = 0; i < 10000; ++i) {
MyFrame frame = new MyFrame();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
final Window window = e.getWindow();
window.setVisible(false);
window.dispose();
for(Window w : Window.getWindows()){
System.out.print(w.getName() + " ");
}
System.out.println("");
}
});
frame.setVisible(true);
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
}
}
});
}
0510503
2010/08/17(火) 02:33:27private static class MyFrame extends Frame {
private final BufferedImage image;
private MyFrame() {
image = new BufferedImage(1920, 1080, BufferedImage.TYPE_4BYTE_ABGR);
}
public void removeNotify() {
System.out.print("removed, ");
super.removeNotify();
}
public void addNotify() {
System.out.print("added, ");
super.addNotify();
}
}
実行結果
added, removed, frame0
added, removed, frame0 frame1
added, removed, frame0 frame1 frame2
(略)
added, removed, frame0 frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8 frame9 frame10 frame11 frame12 frame13
added, removed, frame0 frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8 frame9 frame10 frame11 frame12 frame13 frame14
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
(略)
0511デフォルトの名無しさん
2010/08/17(火) 03:54:20import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Hoge {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
(new Timer(50, new ActionListener() {
private int count = 0;
@Override public void actionPerformed(ActionEvent e) {
if(count%5==0) System.gc();
JFrame f = new JFrame();
f.dispose();
System.out.println(Window.getWindows().length);
if(count++>50) ((Timer)e.getSource()).stop();
}})).start();}});}}
0512デフォルトの名無しさん
2010/08/17(火) 06:41:03MyFrame frame = new MyFrame();
でBufferedImageがヒープ食いつくしてるだけ。
Window.dispose()が実際にリソース解放するのはGCが発生したとき。またはいろいろ依存。
GCが発生するより先に
>image = new BufferedImage(1920, 1080,BufferedImage.TYPE_4BYTE_ABGR);
ここでヒープなくなってるだけだ。一回で32MByte食ってるだろ。
disposeする前にimage=nullすれば食いつくさないしdisposeした分もGCしたとき回収される。
0513503
2010/08/17(火) 12:10:50確認できました。
分かりやすいサンプルをありがとうございます。
>512
解説ありがとうございます。
dispose()してもリソースはすぐには解放されないんですね。
画像の保持をComponentにさせた場合にうまくいったのも、これで理解できた気がします。
おかげさまで何とかなりそうです。
dispose()とGCについて、続けてもう少し勉強してみようと思います。
どうもありがとうございました。
0514デフォルトの名無しさん
2010/09/11(土) 16:02:23JFrameをsetFullScreenし全画面表示を行っています。この状態でJOptionPaneなどを呼びだすと
JFrameごとJOptionPaneも最小化されてしまい、デスクトップに戻ってしまいます。
タスクバー上で選択すればJOptionPaneの表示されたJFrameが再表示されるのですが、
ユーザの操作なしで画面を再表示することはできないでしょうか?
0515デフォルトの名無しさん
2010/09/11(土) 17:52:100516デフォルトの名無しさん
2010/09/12(日) 02:42:200517デフォルトの名無しさん
2010/09/12(日) 10:03:200518デフォルトの名無しさん
2010/09/13(月) 16:05:220519514
2010/09/18(土) 10:45:48意味がわからないw
自己解決しました。
0520デフォルトの名無しさん
2010/09/19(日) 03:15:10もうシスモンするなよ。
0521デフォルトの名無しさん
2010/09/19(日) 03:45:33JFrameは、ハードウェア支援が受けられる排他モードのフルスクリーンをサポートしています。
でも他のウィンドウを呼んで、フルスクリーン化したウィンドウの手前に出すことはできません。
http://download-llnw.oracle.com/javase/6/docs/api/java/awt/GraphicsDevice.htm
どうしても全画面ぽくしたいなら、次のメソッドを組み合わせるとそれらしく動作しますね。
ウィンドウ枠を無くすJFrame#setUndecorated(true)と常に手前に出すようにするJFrame#setAlwaysOnTop(true)、
ウィンドウを最大化するJFrame#.setExtendedState(Frame.MAXIMIZED_BOTH)かJFrame#setSize()でスクリーンの大きさに合わせる。
あとはこのウィンドウをオーナーにしたJDialogあたりを呼び出せば大丈夫。
ただ、本物のフルスクリーンに比べてパフォーマンスは落ちます。
しかし、書き込む前に誤字ぐらい直したら?>>520
見づらすぎる。
0522デフォルトの名無しさん
2010/09/19(日) 11:17:100523デフォルトの名無しさん
2010/09/19(日) 14:38:37JInternalFrameを置くJDesktopPaneをどこに配置するかの問題と、
子ウィンドウのJDialogかJFrameをJInternalFrameに置き換えるのが多少手間ですね。
まあ、子ウィンドウのContentPaneを取ってきてJInternalFrameにそのまま貼りつけてやれば
なんとかなりそうだけど、問題はJDesktopPaneかな。
親ウィンドウのlayeredPaneかglassPaneに置いてやれば上手くいくような気が…しなくもありません。
自分も考えただけで試してないけど。
0524デフォルトの名無しさん
2010/09/19(日) 15:15:03というのは、下にJTableでもあってスクロールしたりするとJInternalFrameの方がかき消されてしまう。
もちろん描画されてないだけで上にあるから、JInternalFrameの見えない枠をつかんで移動し直せば
描画されるし動かせるけど、ペイントマネージャーを何とかしないと無理そうです。
GlassPaneの方はJFrameにsetGlassPane(new JDesktopPane())で問題なく動作した。
ただ、下のコンポーネントにマウスイベントは伝わっても位置が伝わらないので
JScrollPaneの中のコンポーネントでgetViewPort().getMousePosition()とかしたりしてるとnullが帰ってくる。
GlassPaneで凝った表示とかさせてなければ、これでもいいかも。
0525デフォルトの名無しさん
2010/09/19(日) 16:32:09いろいろsetDoubleBuffered(true)したけど、どうも変わらないし。
小さなウィンドウならいいけど、それなりの大きさのを動かすと重いです。
0526デフォルトの名無しさん
2010/09/19(日) 16:36:17http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6770428
0527デフォルトの名無しさん
2010/09/19(日) 17:07:18>In Java 1.6 the upcoming dialog is damaged and in the upper left corner.
とあるけど、こちらでは呼び出したJDialogにフォーカスが合わないし、操作すると
下の全画面ウィンドウがちらついて、タスクバーが見え隠れします。
閉じるボタンを連打するとなんとか閉じられる。
おそらく全画面化したフレームからフォーカスが外れると排他モードから抜けるんだろうけど・・・
0528デフォルトの名無しさん
2010/09/19(日) 23:39:380529デフォルトの名無しさん
2010/09/20(月) 03:37:580530デフォルトの名無しさん
2010/10/01(金) 14:37:51http://code.google.com/intl/ja/webtoolkit/tools/wbpro/index.html
googleがどっかの会社を買収して、そこが販売していたツールを
無料提供してくれたらしい
0531デフォルトの名無しさん
2010/10/01(金) 22:43:250532デフォルトの名無しさん
2010/10/01(金) 23:50:41サクサク動くし、生成されたコードがきれい(変なタグが入ったりしない)で、思い通りにポトペタすることができたよ。
SWTでだけど、レイアウトを間違えてAbsoluteLayoutでやってて、途中でFormLayoutにしたらまったく見た目変わらずコンバートしてくれたのには驚いたw
とにかく細部まで作りこまれてて完成度が高いと思った。
まだ今のところは気になる点はないね。
0533デフォルトの名無しさん
2010/10/02(土) 00:02:09でもエクリプス専用だよね
0534デフォルトの名無しさん
2010/10/02(土) 00:12:34何か問題ある?
仮にEclipse使いじゃなかったとしても、GUI生成のためだけに導入ってのもありだと思うけど。
0535デフォルトの名無しさん
2010/10/02(土) 00:16:045、6年前なら説得力あっただろうけど、今さらイラン
0536デフォルトの名無しさん
2010/10/02(土) 21:56:40jiglooより使いやすいでしょうか?
0537デフォルトの名無しさん
2010/10/04(月) 00:34:29つーか533は何が使いたいんだw
0538デフォルトの名無しさん
2010/10/04(月) 08:50:48実際の開発案件で採用したこともあるよ。
GUI系のツールの中ではトップレベルに使いやすいと思う。
ただ、気になる点もいくつかあった。
1.GUIとソースがタブ切り替えになってて、その切り替えが遅い(タブ切り替えの都度コンパイルから初期化までのロジックを実行してる)。
2.自動生成のテンプレから逸脱したGUI初期化ロジックを組むと、その部分がGUIの編集画面に反映されない。
3.いくつかのレイアウトでは冗長なコードが生成される。
NetBeansで開発してて、生成ロジック部分が編集不可なことに苛ついた人にはオススメ。
0539デフォルトの名無しさん
2010/10/04(月) 12:44:27いまさらだけどエクリプス使いの日曜プログラマーにはおすすめかもね。
0540デフォルトの名無しさん
2010/10/04(月) 22:06:57>金払ってライセンスを受けている。
そりゃそうだけどタダで公開して環境を簡単に揃えられることに意味があるんじゃないのか?
そのためにわざわざ買い取ったの公開したんじゃないの。
0541デフォルトの名無しさん
2010/10/05(火) 01:50:400542デフォルトの名無しさん
2010/10/05(火) 02:13:12とするとnetbeansで何かダメなところがあるのか?
0543デフォルトの名無しさん
2010/10/05(火) 08:22:54netBeansも良い開発環境だと思う。
ただ、参画するプロジェクトで指定されるのはeclipseの方が多いかな。
IB◯が絡んでるとほぼ確実にRADが指定されるし。
まああれです、両方とも使えるようになっておくのが一番。
0544デフォルトの名無しさん
2010/10/05(火) 13:55:04仕事ではプロジェクトでEclipse指定されることが多いな…
# IB◯は絡んでない仕事でもそんな感じ
0545デフォルトの名無しさん
2010/10/05(火) 21:06:51下の説明みるとできるみたいなんですが、英語翻訳してもやり方がわかりませんでした。
お願いします。
http://code.google.com/intl/ja/webtoolkit/tools/wbpro/userinterface/source_view.html
0546デフォルトの名無しさん
2010/10/06(水) 01:04:14あとはEclipseがデファクトすぎてどうにもならない。
0547デフォルトの名無しさん
2010/10/06(水) 03:54:470548デフォルトの名無しさん
2010/10/07(木) 10:58:43GUIアプリ作る時ってJFrameを継承したサブクラスをわざわざ作って
そのクラスをベースにGUIを構築するけど
これってどんな利点があるの?
インスタンス名を省略できることくらいしか利点が思いつかないんだが。
0549デフォルトの名無しさん
2010/10/07(木) 11:06:20別にリスナーとかを独立して管理したければそうすればいいよ。
デスクトップアプリはMVCのVとCがくっ付いてるのが普通だと思うけど。
0550デフォルトの名無しさん
2010/10/07(木) 11:24:14VとCを分離したっていいじゃん?
0551デフォルトの名無しさん
2010/10/07(木) 11:30:380552デフォルトの名無しさん
2010/10/07(木) 12:38:45将来アプレットにするかもしれないとか計画があるんなら、
自作する最上位ビューはJPanel継承したコンポーネントにしておくかな。
あとはJAppletでもJFrameでも好きなコンテナにハメてくださいってかんじで
0553デフォルトの名無しさん
2010/10/07(木) 21:16:24会社で設計するときは、こうだね。
フレームワークが使うから。
0554デフォルトの名無しさん
2010/10/07(木) 23:20:06さらにリスナをimplimentsしてるコードをみるとイラッとくるんだがおかしいだろうか?
0555デフォルトの名無しさん
2010/10/08(金) 02:47:21自分は数行のコードならAddListenerの引数中で無名クラスに実装してそこで見られるようにしておくが。
VisualEditorが吐くように。
まああまり長くなると見にくいので分離するけど。
0557デフォルトの名無しさん
2010/10/08(金) 22:20:02public class hoge extends JFrame implements ActionListener {}
は教本かなにかの名残だろ。
0558デフォルトの名無しさん
2010/10/08(金) 22:30:560559デフォルトの名無しさん
2010/10/08(金) 22:34:300560デフォルトの名無しさん
2010/10/09(土) 16:18:18サブクラス化が面倒だったり
0561デフォルトの名無しさん
2010/10/09(土) 21:13:12オーナードローするしかないの?
0562デフォルトの名無しさん
2010/10/09(土) 21:39:06まぁ、自前でアイコンつけちゃう方が楽かも知れんけど。
0563デフォルトの名無しさん
2010/10/09(土) 22:19:51ありがとうございます
0564デフォルトの名無しさん
2010/10/09(土) 23:39:40そのノード以下のフォルダが閉じてしまうのは不可避?
0565デフォルトの名無しさん
2010/10/09(土) 23:42:260566デフォルトの名無しさん
2010/10/10(日) 00:05:280567デフォルトの名無しさん
2010/10/10(日) 00:29:41下のようにするとreload後も閉じないよ
Enumeration expandEnum = jtree.getExpandedDescendants(tree.getPathForRow(0));
reload();
if(expandEnum == null){
//もともと何も開かれていない
}
else{
//ここで元通り開く
while(expandEnum.hasMoreElements()){
jtree.expandPath((TreePath)expandEnum.nextElement());
}
}
0568デフォルトの名無しさん
2010/10/10(日) 00:48:34うまくいきました
ありがとうございます
0569デフォルトの名無しさん
2010/10/11(月) 19:48:052000年絶版のBlackBookのSwing版か、Java GUIプログラミング〈Vol.3〉さらにパワーアップしたSwing を購入しようと思ってるんだけど、ほかに良さそうなのある?
0570デフォルトの名無しさん
2010/10/11(月) 21:53:390571デフォルトの名無しさん
2010/10/11(月) 22:24:45そこの会社だったかその本のシリーズが無くなったからそのシリーズ未完だけどもう出ないぞ。
0572デフォルトの名無しさん
2010/10/11(月) 22:48:59本だとPCつけなくてもどこでも読めるし、何かと便利だから欲しいんだよね
>>571
BlackBookの方はもう中古じゃないと売ってないね
だいぶ古いけど同シリーズのJAVAプログラミングが良かったから、Swing版もいいかもなと
0573デフォルトの名無しさん
2010/10/12(火) 11:37:13PCが起動していない時間があることにちょっと驚いた
0574デフォルトの名無しさん
2010/10/12(火) 23:40:44ていうか重要なことをあんなチュートリアルに置くなと思った。
0575デフォルトの名無しさん
2010/10/14(木) 13:47:07ドロップ先のコンポーネントを別の JInternalFrame で隠しても、判定が透けてしまう。
(Container#getMouseEventTargetImplの仕様)
ずーと多用してたのに、今日はじめて気がついた。
個々の JInternalFrame に、すべてを reject する DropTarget をくっつけるか、
dragOver で、別の JInternalFrame に隠されていないかチェックして reject すれば対処できた。
でも、JDesktopPane (つまり JLayeredPane) ではデフォでそうなるようにしていいと思うんだが・・・
0576デフォルトの名無しさん
2010/10/14(木) 14:46:490577デフォルトの名無しさん
2010/10/15(金) 13:41:42同感
そろそろ消滅してもいいと思う
0578デフォルトの名無しさん
2010/10/21(木) 21:19:46ワクテカしてサイト見に行ったら
スパイウェアとマルウェアとウイルスのない100%Awardってやつだった
俺様m9
まあ、Windowsで開発していたのにMACで動作確認されてて助かりました
SwingもMDIも現役です。
今は人様のJSynthLibに浮気してる。
SwingもMDIも現役です。
0579デフォルトの名無しさん
2010/10/22(金) 11:46:21データいっぱい比較したい時どうすんの?
ツールバー付きのメインウィンドウたくさん出すの?
0580デフォルトの名無しさん
2010/10/22(金) 12:13:570581デフォルトの名無しさん
2010/10/22(金) 13:42:31比較が重要な要件なら比較機能をつけるべき、
ユーザがウィンドウを並べて目で見て比較って
のが既に微妙なんじゃないかと…
# 工数的にとか予算的にそういうところに落ち着くことはありますけど…
0582デフォルトの名無しさん
2010/10/24(日) 03:07:58もちろん差がしきい値以上なら強調するとか、対策はしてる。
でも研究用のツールとかだとセルをなめて見るなんてのもざらです。
0583デフォルトの名無しさん
2010/10/30(土) 17:25:23swingのチュートリアルなんてあったっけ?
もしかしてピアソンエデュケーションのJavaチュートリアルの章のこと?
0584デフォルトの名無しさん
2010/10/30(土) 17:41:14行ってみてなかなかの充実ぶりに驚いた。
Swingのパートはここ?
http://download.oracle.com/javase/tutorial/uiswing/index.html
今さらながらロゴとURLに面食らう。
0585デフォルトの名無しさん
2010/10/31(日) 09:51:590586デフォルトの名無しさん
2010/10/31(日) 12:48:09セル内でスクロールさせて表示することはできますか?
0587デフォルトの名無しさん
2010/11/05(金) 01:03:33URLだけ生きてない?
前のjavadocとかリンクないけど鯖においたままなのが大量にあるよ
0588デフォルトの名無しさん
2010/11/05(金) 05:35:250589デフォルトの名無しさん
2010/11/05(金) 19:38:48JButtonのsetBorderPainted( false )
に対応しないの?
たぶんLookAndFeelの仕様なのかもしれないけど
こういうのってきちんと修正されるの?
0590デフォルトの名無しさん
2010/11/05(金) 22:35:39"ユーザー設定のボーダー"をどうしても"描画したい"というならJPanelに放り込んでパネルにボーダー設定する方法があるが、消したいとなるとLaF次第。
0591デフォルトの名無しさん
2010/11/07(日) 21:51:29まぁ>>589の言いたいのは単に「バグだ」ってことなんだろうけど
0592デフォルトの名無しさん
2010/11/08(月) 00:01:28Altキー押すとメニューにフォーカスはされるんだけどキー押してもメニューの展開がされない。
同時押ししないとメニューが開けない・・・。
これWinのGUIで一番大事な機能なのにな。
0593デフォルトの名無しさん
2010/11/08(月) 02:17:510594デフォルトの名無しさん
2010/11/08(月) 12:16:41背景画像の引き延ばしはできても繰り返しがない?のがちと不便
それはともかくバランスのいいデザインにするのがむずい
0595デフォルトの名無しさん
2010/11/08(月) 12:27:54他では聴いたことがない。
0596デフォルトの名無しさん
2010/11/08(月) 15:48:280597デフォルトの名無しさん
2010/11/08(月) 18:00:52無償。
0598デフォルトの名無しさん
2010/11/08(月) 19:55:58サンキュー。早速入れてみた。カッコウイイなこれ。ところでswing使えるんだが
SWT使えないの?なんかエラーになるんだが・・・
0599598
2010/11/08(月) 20:10:130600デフォルトの名無しさん
2010/11/09(火) 00:21:52これを無効化する方法ってないですか。
テキストの編集中にのみフォーカスの移動を制御したいのですが。
0601デフォルトの名無しさん
2010/11/09(火) 08:34:20まったく検証してないから的外れなこと書いてたらすまん。
当該テキストエリア(またはアプリ全体)のKeyEvent拾ってAltを検出できるか確認。
検出できるなら条件指定してイベントをつぶせばいいはず。
検出できないならOSレベル(またはJavaVM)で処理が終わってると思われるので難しそう。
または、Documentクラスで入力チェックできるか確認。
こっちはクラスの使用目的考えるとイレギュラーな匂いがする。
ツッコミおまちしてます。
0602デフォルトの名無しさん
2010/11/09(火) 13:03:29JMenuBar じゃなくて MenuBar の場合かな。
なお、JMenuBar であればフォーカスは移らないが、その代わり、[Alt]押した後、文字は打ち込めるが、
[↓]押すと Windows の「移動」「サイズ変更」... のコンテキストメニューが出る。(W2K+JDK5)
キーを押すと JFrame がイベントをディスパッチし、DefaultKeyboardFocusManager に処理がわたり、
下って下って、例えば JTextArea に行く。
その後上って上って、DefaultKeyboardFocusManager に戻り、
結局なんだかんだで native メソッドに処理がわたっているらしい。
MenuBar の場合も Windows のコンテキストメニューの場合も、同じらしい。
(らしい、というのは反証がないか調べて尽くしてないから)
そこまでの間に、どこかで KetEvent#consume すればいい。
手っ取りばやくはこれでどうかな。
JTextArea a = new JTextArea() {
protected void processKeyEvent(KeyEvent e) {
super.processKeyEvent(e);
//ここまでで IME の処理も終わってるはず(定かではない)。
//consume されておらずかつ [Alt]単押しの場合にのみ作用。
//MenuBar でも JMenuBar でも対応できる。
if (! e.isConsumed() && e.getModifiers() == KeyEvent.ALT_MASK) {
e.consume();
}
}
};
JFrame でディスパッチする前につぶしてもいいかもしれない。
0603デフォルトの名無しさん
2010/11/09(火) 13:21:52その次にやってくる 「[Alt]+[ローマ字]」のイベントなどは、つぶれてしまう可能性がある。
とはいえ実際はソースに書いたように IME の処理は終了済みなので、問題はないと思う。
JFrame がディスパッチするまえにつぶすとそうは行かない。
「[Alt]に間違って触れたとき」の予防なのか、
「フォーカス制御した挙句、さらに特殊な処理をしたい」のか、
必要な処理に応じて厳密な調べ方を加えて下さい。
0604デフォルトの名無しさん
2010/11/10(水) 23:13:23現在JFrame上からファイルをPC上にドラッグ&ドロップでコピーを行うプログラムを組んでいます。
しかしファイル名が英字なら動作するのですが日本語ファイル名だとコピーが行われません。
特に例外が発生しているわけでもないので原因もよく分かりません・・・。
ファイルパスをSJISでのエンコードしてからFileを生成したりと色々試してはみたのですがだめでした。
どなたかこのような現象を解決した方はおられますか?
0605デフォルトの名無しさん
2010/11/10(水) 23:34:10そもそもJFrame上と言われても、その説明ではJFrameの上に
何を置いてファイル操作のGUIを実現してるのかさっぱりわからんよ
0606デフォルトの名無しさん
2010/11/10(水) 23:44:51JLabel に自作の TransferHandlerあてこんで、Transferable 実装して、
javaFileListFlavor で java.util.List(ArrayList) 渡すっていう意味でいいのかな。
今そう作って試してみたら俺の環境ではできた。
"E:\\temp\\アドレス帳.txt" ファイルを、
"E:\\temp" 以外にコピーできる、Excel で開ける、Word に貼り付けられる。など。
XP と JRE6、Windows2000 と JRE5、Windows2000 と JDK1.4。
できちゃった以上俺には解決できないかもしれないけど、
OSとJREが何か書いてみたら? あと必要だと思ったらソースも。
0607デフォルトの名無しさん
2010/11/10(水) 23:53:48http://www.uproda.net/down/uproda165397.java.html
これで失敗したら環境が原因、成功したら >>604 のソースが原因
0608デフォルトの名無しさん
2010/11/11(木) 15:23:130609デフォルトの名無しさん
2010/11/11(木) 18:16:580610デフォルトの名無しさん
2010/11/11(木) 21:14:03コードまで作ってくださりありがとうございます。
ほぼ私の作成していたコードと同じ内容です。
しかし実行してみたところやはりコピーが行われませんでした。
となると環境が問題なんですかね・・・?
OSは7、JREは6を用いていて、同じく7を用いている友人も動作しなかったようです。
0611デフォルトの名無しさん
2010/11/11(木) 22:39:14Windows7 64bitだけど、1.6.0_21で動いたよ。
0612デフォルトの名無しさん
2010/11/12(金) 00:05:22大量の複数のスレッドから一斉にテーブルにアクセスしてテーブルの内容を更新したい場合、
それぞれのスレッドでSwingUtils.invleLaterを使って更新処理をすればいいんでしょうか?
0613デフォルトの名無しさん
2010/11/12(金) 01:14:58ファイルの絶対パスを file.encoding にしたがって
byte[] bs = file.getCanonicalPath().getBytes() して VM外に送出してるらしい
なので file.encoding を変えれば動くのかもしれない
でも特にミスしてないかぎり わざわざそんな必要性なさそうだよな
0614デフォルトの名無しさん
2010/11/12(金) 07:46:28いいよ
0615デフォルトの名無しさん
2010/11/12(金) 14:29:000616デフォルトの名無しさん
2010/11/12(金) 15:37:540617デフォルトの名無しさん
2010/11/13(土) 02:54:420618デフォルトの名無しさん
2010/11/14(日) 22:42:50メニューからファイルを開き、画像(JPEG)をパネル上に表示させるというプログラムを書いているのですが
上手くいきません。
本・ネット等色々調べたのですが、解決できませんでした。
具体的には
JMenuItem openmenu = new JMenuItem("開く");を押すとイベントが発生し
JFileChooserで開きたい画像を選択
その画像をJPanelに表示させる
という流れです
よろしくお願いします
0619デフォルトの名無しさん
2010/11/14(日) 22:45:190620デフォルトの名無しさん
2010/11/14(日) 22:55:34ご指摘ありがとうございます
少々長くなりますがお願いします
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Modelling");
setSize(800, 700);
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(300, 700));//大きさ指定
p.setBackground(Color.ORANGE);
p.setLayout(null);//これにより座標で配置できるようになる
JPanel p2 = new JPanel();
p2.setPreferredSize(new Dimension(500, 700));
p2.setBackground(Color.GRAY);
JMenuBar menuBar = new JMenuBar();
JMenu menu1 = new JMenu("ファイル");
menuBar.add(menu1);
JMenuItem openmenu = new JMenuItem("開く");
setJMenuBar(menuBar);
public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "開く"){
//開くが押されたときの処理
JFileChooser filechooser = new JFileChooser();
Icon icon = new ImageIcon(filechooser.getSelectedFile().getPath());
JLabel label4 = new JLabel(icon2);
p2.add(label)4;
}
0621デフォルトの名無しさん
2010/11/14(日) 22:57:25p2.add(label)4;→p2.add(label4)
です
パネルp2に画像を表示させたいです;
0622デフォルトの名無しさん
2010/11/14(日) 23:49:472.最低限必要な部分だけ書く
それくらいはがんばってください
0623デフォルトの名無しさん
2010/11/15(月) 00:10:53import java.awt.*;
import java.io.File;
import java.awt.event.*;
public class ModelTest extends JFrame implements ActionListener{
Modelling frame;
public JPanel p,p2,p3;
JButton bt1,bt2,bt3;
JMenuBar menuBar;
JMenu menu1;
JMenuItem openmenu,savemenu,closemenu;
JLabel label4;
ImageIcon icon1,icon2;
JFileChooser filechooser;
String filename;
String name="";
public static void main(String [] args) {
//フレームの作製
ModelTest frame = new ModelTest();
frame.setVisible(true);
}
0624デフォルトの名無しさん
2010/11/15(月) 00:11:55////////////
//フレーム//
////////////
//getContentPane().setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Modelling");
setSize(800, 700);
//setLocationRelativeTo(null);
//アイコンの表示
ImageIcon icon1 = new ImageIcon("./icon.gif");
setIconImage(icon1.getImage());
//////////
//パネル//
//////////
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(300, 700));//大きさ指定
p.setBackground(Color.ORANGE);
p.setLayout(null);//これにより座標で配置できるようになる
//パネル2画像表示用
JPanel p2 = new JPanel();
p2.setPreferredSize(new Dimension(500, 700));
p2.setBackground(Color.GRAY);
0625デフォルトの名無しさん
2010/11/15(月) 00:13:51bt1.setBounds(10, 50, 80, 30);
JButton bt2 = new JButton("ボタン2");
bt2.setBounds(10, 90, 80, 30);
//ボタン配置
p.add(bt1);
p.add(bt2);
//パネル配置
Container contentPane = getContentPane();
contentPane.add(p, BorderLayout.WEST);
contentPane.add(p2,BorderLayout.EAST);
////////////
//メニュー//
////////////
JMenuBar menuBar = new JMenuBar();
JMenu menu1 = new JMenu("ファイル");
menuBar.add(menu1);
JMenuItem openmenu = new JMenuItem("開く");
JMenuItem savemenu = new JMenuItem("保存");
JMenuItem closemenu = new JMenuItem("閉じる");
menu1.add(openmenu);
menu1.add(savemenu);
menu1.add(closemenu);
//イベント
openmenu.addActionListener(this);
closemenu.addActionListener(this);
setJMenuBar(menuBar);
0626デフォルトの名無しさん
2010/11/15(月) 00:15:06if (e.getActionCommand() == "開く"){
//開くが押されたときの処理
File dir = new File("C:\\pleiades-e3.6-java-jre_20101025\\workspace\\Modelling");
JFileChooser filechooser = new JFileChooser();
int selected = filechooser.showOpenDialog(this);
if (selected == JFileChooser.APPROVE_OPTION){
//name= chooser.getSelectedFile().getPath();
File file = filechooser.getSelectedFile();
ImageIcon icon2 = new ImageIcon("filechooser.getSelectedFile().getPath()");
JLabel label4 = new JLabel(icon2);
p2.add(label4);
}
}
if (e.getActionCommand() == "保存"){
//保存が押されたときの処理
}
if(e.getActionCommand() == "閉じる"){
//閉じるが押されたときの処理
System.exit(0);
}
}
}
0627デフォルトの名無しさん
2010/11/15(月) 00:15:470628デフォルトの名無しさん
2010/11/15(月) 00:21:18File dir = new File("C:\\pleiades-e3.6-java-jre_20101025\\workspace\\Modelling");
JFileChooser filechooser = new JFileChooser();
↓
JFileChooser filechooser = new JFileChooser();
です
色々ミスがありまして、すみません
0629デフォルトの名無しさん
2010/11/15(月) 00:41:33コンストラクタ内の JPanel p2 = new JPanel(); とかは p2 = new JPanel(); などとして、新しいローカル変数を作らないようにする
いったん表示した後に新しいコンポーネントをaddするなどレイアウトが変わるときはrevalidateを呼ぶ必要がある
p2.add(label4); の後に p2.revalidate(); を
あとは
× ImageIcon icon2 = new ImageIcon("filechooser.getSelectedFile().getPath()");
○ ImageIcon icon2 = new ImageIcon(filechooser.getSelectedFile().getPath());
0630デフォルトの名無しさん
2010/11/15(月) 00:42:440631デフォルトの名無しさん
2010/11/15(月) 01:18:03アドバイス通りに変更したところ画像を表示することができました。
本当にありがとうございます!
revalidateというのを知らなかったので、とても参考になりました。
そして自分の調べが足りませんでした…
重ねてお礼申し上げます。
ありがとうございます。
こういうスレに書き込み自体が初めてだったので勝手がわかりませんでした。
今後はソースはうpということを念頭に置いておきます。
失礼いたしました。
次は、大きな画像がはみ出さないように表示する
ということにチャレンジしてみたいと思います!
何回もしつこいとは思いますがが、本当にありがとうございました!
0632デフォルトの名無しさん
2010/11/15(月) 15:10:460633デフォルトの名無しさん
2010/11/15(月) 15:41:110634デフォルトの名無しさん
2010/11/18(木) 22:33:13★★ Java の宿題ここで答えます Part 69 ★★
0635デフォルトの名無しさん
2010/11/26(金) 20:33:000636デフォルトの名無しさん
2010/11/26(金) 22:08:54環境はJRE6です。
JTableのヘッダについて、以下の順序で作ったテーブルをスクロール
すると、新しく表示される部分が正しく描画されません。
たとえば右にスクロールすると、スクロール開始前の右端の数ピクセルが
繰り返し描画されます(右端にFと描画されている時はFFFFFFFFFが続きます)
スクロールを戻すと、最初に描画されていた範囲は正しい描画のままです。
テーブル本体は正しく描画されています。
1.new JTable()
2. setModel(new MyModel())を使ってモデルをセット。
(モデルはAbstractTableModelを継承させていて、
列数(20)、行数(20)、返す値("nulpo")を定数で返す様に定義しています。)
3.setAutoResizeModeでAUTO_RESIZE_OFFをセット。
4. JScrollPaneにsetViewportViewでセット
5. JScrollPaneをフレームにセット
6. jTable.getTableHeader().setPreferredSize(new Dimension(100,30))
すいません、もう一つ質問があります。
JTableにセルエディタとしてJListをそのまま使った場合、
セルの表示域までしかJListが表示されなくて使えませんでした。
この場合は、どのようにすれば正しく実装できるのでしょうか?
Ctrlで複数選択できる機能が付いたコンボボックスの様な動作を期待しています。
JComboboxじゃなくJListを使おと思った理由は複数選択がしたかったからです。
JCombobox->AccesibleContext->JList->setSelectionMode
という方法も試してみましたが、単一選択しかできませんでした。
以上です。長文失礼しました。
0637デフォルトの名無しさん
2010/11/26(金) 22:45:44>jTable.getTableHeader().setPreferredSize(new Dimension(100,30))
んなことするからじゃないの。
縦幅指定したかったのなら Renderer 作るかなんかしたらどうじゃ。
table.getTableHeader().setDefaultRenderer(new TableCellRenderer() {
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column
) {
JLabel label = new JLabel(table.getColumnName(column));
label.setPreferredSize(new Dimension(100, 30));
label.setBorder(new BevelBorder(BevelBorder.RAISED));
return label;
}
});
0638デフォルトの名無しさん
2010/11/26(金) 23:15:44後者は、俺は TableCellEditor の仕組みは良くわかってないし
>JCombobox->AccesibleContext->JList->setSelectionMode
も何を実際に試したんだか見えないけどさ、
JComboBox つかってる限りどうしたって単一選択になるんじゃないの。
こういう方向で攻めたらいいんじゃないかな。
http://www.dotup.org/uploda/www.dotup.org1270352.java.html
とりあえずそれっぽく動いた。疲れちゃったのであとは自分でやってちょ。
JList のフォーカスリスナーかなんか使えばうまくいくんでなかろうか。
0639デフォルトの名無しさん
2010/11/26(金) 23:19:10まぁいいや。イケてる人の突っ込み待ってくんろ。
0640デフォルトの名無しさん
2010/11/26(金) 23:49:21そのとおりに実装した所、うまく動きました。
とても助かりました。ありがとうございます。
>>638
目から鱗です。セル位置にウィンドという方法は考えていませんでした。
動くコードまでつくって頂いて本当にありがとうございます。
その方向での実装方法も検討するようにします。
>何を試した
http://www.ne.jp/asahi/hishidama/home/tech/java/swing/JComboBox.html
の最後のあたりにJCombobox内のJListを取得する方法があったので
それにsetSelectionMode(MUL~)をしてみました。
みましたが、CtrlやShiftを押しながら選択しても、一つの項目を選択
したタイミングで選択終了になってしまう為、複数選択ができませんでした。
0641デフォルトの名無しさん
2010/12/03(金) 02:24:39サンプルコードじゃなくて実際のソフトウェアのソースコードがいいです。
gitとかsvnでとってこれるとうれしい。
0642デフォルトの名無しさん
2010/12/03(金) 07:54:300643615
2010/12/05(日) 20:39:10こういうの使うとwinscpみたいの作れますか?
0644デフォルトの名無しさん
2010/12/06(月) 07:48:300645デフォルトの名無しさん
2010/12/06(月) 15:25:55その程度のことを人に聞かなきゃ分からん奴には作れない
0646615
2010/12/06(月) 16:54:450647デフォルトの名無しさん
2010/12/06(月) 17:42:550648デフォルトの名無しさん
2010/12/06(月) 19:38:42Winscpの機能を実現するのに必要な処理がわからないのですよね?
その状態でライブラリがあれば作れると思っているなら大間違いです。
Winscpのソースコードを読んでどんな処理が必要か理解する必要があります。
このソースコードを理解できたら、同じ処理をするJavaプログラムを作れます。
このソースコードを理解できないなら、ライブラリがあっても作れません。
http://winscp.net/eng/download.php#download2
http://winscp.net/download/winscp429source.zip
0649615
2010/12/06(月) 20:21:10わざわざありがとうございます。勉強します。
0650デフォルトの名無しさん
2010/12/07(火) 03:12:59下手すりゃ何年も手を入れ続けることになる。
俺もそうだし。
あんまり精神論語るのもアレだけど、それでもやろうってモチベーションと、
最低限自分で出来るところまでは自分で頑張る気概がなければせいぜい
Hello World!に毛が生えたくらいのコードしか書けないよ。
今はGoogle先生が1円も払わずに色々教えてくれるんだから自分で
出来るとこまではやりなよ。
ま、頑張って。
良いソフトかけたらここで教えてくれ。
0651615
2010/12/07(火) 06:19:51そうなんですか。甘く見てました。早速コード見てみたらあまりの多さにびっくりしました。c++理解してないと無理そうですね。Javaとは別にc++勉強します。
色々とありがとうございました。
0652デフォルトの名無しさん
2010/12/07(火) 10:08:30まずググれ。
「Java scp」で検索するだけで掃いて捨てるほど
使えそうなサンプルが出てくるのになぜここで聞く?
自分で調べるのが面倒だからとか言ったら張り倒すよ。
自分で何とかしようとした上でわからなければ力を貸すけど、
そうじゃなきゃ誰も協力しないよ。
俺は別にwinscpのコードが読めなくても構わないと思う。
winzipのコード読めないがJavaでZIPの圧縮解凍するコード書いてるし。
ただ読めて損は無いから頑張ってや。
0653615
2010/12/07(火) 18:35:08ググった上で聞きました(java scp等)。
正直一人で調べてやっていると
今自分がやっているのが本当にあっているのかすら
わからない状態になってしまい、
途方にくれてしまったので。
コマンドプロンプト状態とGUI状態では
また別物なので混乱してしまいました。
特にswingは処理長いものをやると固まるし、
swingworkerもなかなか・・・
申し訳ない
0654デフォルトの名無しさん
2010/12/07(火) 20:31:19Swing関係ない。
多くのGUIツールキットはシングルスレッドで、そのスレッド上で長い処理を行うと固まるのは当然のこと。
0656デフォルトの名無しさん
2010/12/08(水) 17:03:21http://hibari.2ch.net/test/read.cgi/tech/1267796762/
★★ Java の宿題ここで答えます Part 69 ★★
http://hibari.2ch.net/test/read.cgi/tech/1290103530/
★★Java質問・相談スレッド142★★
http://hibari.2ch.net/test/read.cgi/tech/1253521167/
マルチスレッドプログラミング相談室 その8
0657デフォルトの名無しさん
2011/01/08(土) 19:45:24なんかAWTはシステムデフォルトのGUIを呼び出してるっぽいし、
そっちのほうが速い気がするんだけど。
0658デフォルトの名無しさん
2011/01/08(土) 20:19:150659デフォルトの名無しさん
2011/01/09(日) 01:24:080660デフォルトの名無しさん
2011/01/11(火) 11:37:56実際速いかどうかはしらんが。
SwingのJFileChooserなんかと比べると
AWTのFileDialogほうが高機能ではある。
SwingのGUIはJVM独自で描画してるから、
それがネイティブのGUIに勝っているのであれば速いんじゃまいか。
0661デフォルトの名無しさん
2011/01/20(木) 09:28:50もしかいて無いの?
0662デフォルトの名無しさん
2011/01/20(木) 10:16:170663デフォルトの名無しさん
2011/01/20(木) 17:06:570664デフォルトの名無しさん
2011/01/21(金) 01:43:04しかも開発が終了してるので今後メンテされることはないよ。
0665デフォルトの名無しさん
2011/01/21(金) 08:11:12The Jigloo SWT/Swing GUI Builder is free for NON-COMMERCIAL use only.
0666名無しさん
2011/02/01(火) 06:48:45部分的なサンプルはよくみかけるのですが
0667デフォルトの名無しさん
2011/02/01(火) 20:07:560668デフォルトの名無しさん
2011/02/01(火) 21:58:250669デフォルトの名無しさん
2011/02/03(木) 14:00:06遅いダサい作り辛い。
ま個人的にはMetalは好きなんだけど。
.netになれた自分としてはSwingはよーわからん・・
0670デフォルトの名無しさん
2011/02/03(木) 21:22:18あの汚いフォントで使いづらいファイル選択ダイアログとか出すから、
一瞬でアンインストールされるフラグ立っちゃうんだよ。
0671デフォルトの名無しさん
2011/02/04(金) 07:34:47クリアフォントが使えないことを言っているんだろうが、
個人的には気にならんが。
0672デフォルトの名無しさん
2011/02/04(金) 18:16:53Emacsでもメイリオにしちゃう俺が言うのもなんだがw
0673デフォルトの名無しさん
2011/02/08(火) 23:59:10あるJFrameとListenerとControllerをすべて別クラスにする場合はどのようなクラス構成がいいのでしょうか?まず思いついたのがこんなのなんです。
public class Controller{
public void init (){
Model mode = new Model();
ViewListener viewListener = new ViewListener(this);
View view = new View(viewListener);
}
public void helloWorld(){ System.out.println("Hello World"); }
}
public class ViewListener extends ActionListener{
private Controller controller;
public ViewListener(Controller controller){
this.controller = controller;
}
@Override
public void actionPerformed(ActionEvent e) {
controller.helloWorld();
}
}
public class View{
puclic View(ActionListener viewListener){ this.addActionListener(viewListener) }
}
けどこれの場合JFrameが子画面の子画面の子画面みたいなときに、コンストラクタにひたすらActionListenerを伝って渡していかなければいけないので余り綺麗に思えません。
それを解決するためにActionListenerシングルトンにしてしまって、利用するviewでViewListener.getInstance()みたいにするのは問題ないのでしょうか?
また画面ごとに別のActionListenerを追加したい場合、引数がひどいことになってしまいます。
あともしViewの値をModelの処理に利用したい場合は、helloWorldメソッドの中で、view.getTextField().getText()みたいに呼べばいいのでしょうか?
これも子画面の子画面の子画面みたいなときはview.getView2().getView3().getTextField().getText()みたいになってしまい余りかっこよくないです。
ListenerとViewのクラスが分かれてなければactionPerformedメソッドの中でtextFieldの値を取得して、helloWorldの引数に渡すとか簡単なんでしょうけど
0674デフォルトの名無しさん
2011/02/09(水) 21:11:31なにかまずいの?
あと、
View view = new View(viewListener);
じゃなくて、
View view = new View();
view.addActionListener(viewListener);
の方が良いと思う。
0675名無しさん
2011/02/10(木) 07:39:27コンストラクタに渡していたのは、自分で処理させた方が綺麗かなと思っただけであまり意味はないです
確かにそれの方が渡す引数を1階層減らせていいですね
viewが複数階層ある場合は、コンストラクタに渡していかなければいけないのは、どうしようもないのですかね
0676デフォルトの名無しさん
2011/02/10(木) 13:52:16addViewListener()メソッドが子viewに対してもaddViewListenerすればいいのでは?
「複数階層」というのがどんなものをイメージしているのかわからないけど、
レイアウト的な意味での階層(java.awt.Container)と、
viewの階層(アプリケーションドメインの階層)は切り離して考えていいと思う。
具体的には、ViewManagerみたいな入れ物クラスを作って、
内部のレイアウト階層がどうであれ、子viewに対してフラットに(=たとえば配列で)
アクセスできる仕組みをつくるとか。
0677デフォルトの名無しさん
2011/02/10(木) 14:08:170678名無しさん
2011/02/10(木) 20:15:48なるほどー 切り離しちゃってViewは1つのマネージャーで管理しちゃってもいいんですね
なんかオブジェクト指向という名前に釣られてどうしても現実とリンクさせてしまいがちです
Swingはコンポーネントの解説は調べれば出てくるんですけど、そういう構造をどうしたほうがいいみたいな資料がないので困っていたんですが助かりました!
そこで更に疑問なのですが、私が想定しているアプリならメソッドや変数はそんなに多くはならないんですけど、結構大きくなった場合はどのように分割するんですかね
Eclipseみたいな大規模なものはどういう構造になってるんだろうと思ってソース見てみましたがちんぷんかんぷんでしたw
0679デフォルトの名無しさん
2011/02/10(木) 20:18:360680デフォルトの名無しさん
2011/02/10(木) 22:57:32Viewの中身は、配置や大きさのようにひたすら表示に関することのみに専念するべき。
ViewのModelを取りたい場合は、PropertyChangeListenerを充てて取得する。
0681デフォルトの名無しさん
2011/02/10(木) 23:34:150682デフォルトの名無しさん
2011/02/10(木) 23:48:10Viewは、どのControllerやどんなModelが充てられるかは知らない。
Modelは、どんなControllerに保持されるかは知らない。
素直にやればこんなかんじになる
http://pastebin.com/BjKH9md5
Viewが増えたらViewを増やせばいいし、
Controllerが増えたらそれを増やせばいい。
ListenerはControllerだから、外部クラスにしたっていい。
0683デフォルトの名無しさん
2011/02/10(木) 23:51:41addActionListenerはControllerでViewにActionListenerを渡すんではなく、ControllerでViewを取得してActionListenerをした方がいいということですか?
○
ViewManager{
private View1 view1 = new View1();
private View2 view2 = new View2(); // getter省略
}
Controller{
private ViewManager vm = new ViewManager();
public void init(){
vm.getView1().addActionListener(new View1ActionListener(this));
vm.getView2().addActionListener(new View2ActionListener(this)); } }
×
ViewManager{
private View1 view1 = new View1();
private View2 view2 = new View2();
public void addActionListener1(ActionListener actionListener){
view1.addActionListener(actionListener);
}
public void addActionListener2(ActionListener actionListener){
view2.addActionListener(actionListener);
}
}
Controller{
private ViewManager vm = new ViewManager();
public void init(){
vm.addActionListener1(new View1ActionListener(this));
vm.addActionListener2(new View2ActionListener(this));
}
}
0684デフォルトの名無しさん
2011/02/11(金) 00:14:01そういうこと
×の方で書いてしまったとしても、リファクタリングすると自然と○のコードになる。
×のViewManagerは、継承クラスを作られることが(まず)無いので、
addActionListener1内の処理はメソッドである必要が無くなる
0685デフォルトの名無しさん
2011/02/15(火) 22:28:11JXDatePickerとかJXTaskPaneとかJXBusyLabelとかJXCollapsiblePaneとか便利すぎるだろ。
だがJXTipOfTheDay・・・てめぇは要らねぇ!!
0686デフォルトの名無しさん
2011/02/16(水) 08:31:011.6.0_22までは問題無かったのに
0687デフォルトの名無しさん
2011/02/19(土) 12:27:43慣れてくるとなかなかどーして
結構気に入った
0688デフォルトの名無しさん
2011/02/19(土) 12:40:22特にどこが使いづらいの?
0689デフォルトの名無しさん
2011/02/19(土) 13:34:28.netを先に経験してるとけったいなことこの上ない
でも、SwingってGUIビルダ使うよりコードで書いた方が
気持ちいいことに気づいたら気に入った
0690デフォルトの名無しさん
2011/02/19(土) 15:56:37GUIビルダなんていらんと思うんだ
0691デフォルトの名無しさん
2011/02/19(土) 16:29:350692デフォルトの名無しさん
2011/02/19(土) 16:41:45挫折する人が多いのにどこが気に入ったの?
0693デフォルトの名無しさん
2011/02/20(日) 16:05:13.12通信用の子スレッドを作って、常にListen状態にしておき、受信データをメインスレッドのGUI部品に表示させたいんですが、
子スレッドから、親スレッドの部品にアクセスするにはどうすればいいんでしょうか?
0694デフォルトの名無しさん
2011/02/23(水) 01:02:40.670695デフォルトの名無しさん
2011/02/23(水) 01:05:49.45普通に考えて挫折した人の気持ちなんてわかんないだろ
0696デフォルトの名無しさん
2011/02/24(木) 01:08:36.59それを繰り返すってのはどうすればいいですかね
0697デフォルトの名無しさん
2011/02/24(木) 04:53:05.85Graphics#setClip
Graphics#drawImage
for文
0698デフォルトの名無しさん
2011/02/24(木) 09:59:35.58DelphiとかC#あたりから入ったから最初にSwingさわった時は
ギャップが大きくて訳ワカメだったけど
その後AndroidいじくってるうちにJava脳が鍛えられてたんだとオモw
0699デフォルトの名無しさん
2011/02/24(木) 12:15:47.83f = Foo()
f.bar = 'a'
setattr(f, 'baz', lambda self: 'b' + self.bar)
f.bar
'a'
f.baz()
'ba'
0700デフォルトの名無しさん
2011/02/24(木) 15:23:05.78スクロールバーなしのJScrollPaneに画像付きJLabel表示させて自前でスクロールさせるのがたぶん早い。
縦にJLabel二つ並べてギッコンバッタンさせれば客にはばれないだろう。
JViewportに適切な指示を出しとけば、ハードウェア支援を受けることも可能かも。
0701デフォルトの名無しさん
2011/03/01(火) 01:31:31.07Androidって言語にjava使ってるだけであんまりjavaっぽくないぞ。
0702デフォルトの名無しさん
2011/03/01(火) 09:16:21.3338 名前:デフォルトの名無しさん [sage]: 2011/02/27(日) 21:31:11.41
>>16-17
ちょっと恥ずかしいけどさらしとく。
http://uncorrelated.servehttp.com/jar/KnockingBird.jar
0703デフォルトの名無しさん
2011/03/01(火) 09:20:46.640704デフォルトの名無しさん
2011/03/01(火) 10:02:25.25http://www.youtube.com/watch?v=91atM86IGhw
0705デフォルトの名無しさん
2011/03/01(火) 19:50:37.42昔、ジャストが出してたこんなのとか?
http://www.justsystems.com/jp/software/dt/justarks/index.html
今のjast suiteのjava版って所やね
0706デフォルトの名無しさん
2011/03/01(火) 22:28:12.67前ソースのダウンロードは無料でできて、動かしたことあるけど
ひどい出来だったぞ。
0707デフォルトの名無しさん
2011/03/01(火) 22:43:15.49ジャストシステム、Javaベースの統合オフィスソフト「Just Arks」
jdk1.2.2で2000年ごろでIDEサポートもなくよく頑張ったと思う
javaでもms-officeクローンなものを、また作ってしまえばいいだろうって発想が失敗の元だったんじゃないか
0708デフォルトの名無しさん
2011/03/01(火) 22:52:03.28NetBeansに「JSR-296の開発は終了しています。」って言われた。
SwingはJava SE 6で最後になっちゃったの?
0709デフォルトの名無しさん
2011/03/01(火) 22:55:04.82すぃんぐあぷりけぃしょんふれぃむわぁくの開発が終了しただけなんでね?
7に標準搭載を目指してたけど諦めたのかな
0710デフォルトの名無しさん
2011/03/01(火) 23:27:10.82諦めたらしい。JavaFXもあるしな。
Swingの新機能なら、SwingXもあるから、何とかなるでしょ、と。
肝心のSwingXも開発母体に資金が流れなくなったんで、今後は先細りっぽいけど…
0711デフォルトの名無しさん
2011/03/01(火) 23:28:49.700712デフォルトの名無しさん
2011/03/01(火) 23:40:41.82java7,8はsiwnglabsのdatepickerとからいくつか入れるから別に見捨てられてるってわけではない
というか、swing-gui-mvcも理解出来る人が増えたからここいらでsynthを解説して普及させると、swing再評価とかで少しは流行るんじゃないか
mvcを理解できてもweb javafx appletやhtml dom cssとどう違うかってことまで説明できる人はまだいないだろうから、まだまだかな。実際現在のguiでも区別する程複雑なことをやってるわけでもないし
0713デフォルトの名無しさん
2011/03/02(水) 00:18:43.30HTML+JavaScriptのウィジェットを輸入できそうなんだけど
難しいのかな
0714デフォルトの名無しさん
2011/03/02(水) 23:11:47.59AppFrameworkはSwing知らない初学者にたいしてのEoDだしswing/gui/mvcの点でみればOpenSwingみいたいなFWのほうがいいと思うんだけど。
MVCでやってたらちょっとでかくなっただけでJavaだとデータバインディングやるしDBをhogehogeするのだってやるかもしれないし。
>>713
JavaFXが大コケしたから二度とそっち方面には手を出さないだろう。
ところでsynthのjavadocは平気で嘘書いてあるからソース読んだほうが早いし結局はカスタムペインタ書かなきゃいけないし
ただLnFをSkinableにしただけだから俺は最近はやりのXMLでUI定義して中身をコードで書くような新しいLnFが標準でほしいな。
0715デフォルトの名無しさん
2011/03/03(木) 19:29:47.08NetBeansで作ろうとしていますが、いろんなクラスがあって迷ってます
0716デフォルトの名無しさん
2011/03/03(木) 20:25:17.510717デフォルトの名無しさん
2011/03/03(木) 21:46:26.35感じにならないことありませんか??
0718デフォルトの名無しさん
2011/03/03(木) 21:59:04.44そうならないように、1x1ずつランダムに散らして塗るんだよ
0719デフォルトの名無しさん
2011/03/03(木) 22:50:01.04範囲を切り出してImageにして、好きなだけピクセルに色セットして、もとの場所に貼り直すという手はあるか。
0720デフォルトの名無しさん
2011/03/04(金) 00:05:33.83BufferedImage#getRGBで、BufferedImageをint[]に変換。
自分で設計した幾何フィルタで、int[]を変換。
BufferedImage#setRGBで、int[]をBufferedImageに変換。
0721デフォルトの名無しさん
2011/03/04(金) 01:54:35.70ありがとう
挑戦してみるよ!
しっかし、GUIは難しき
0722デフォルトの名無しさん
2011/03/04(金) 01:57:51.510723デフォルトの名無しさん
2011/03/04(金) 18:07:39.67あの金色にかがやくお星様がJWebPaneだよ。
0724デフォルトの名無しさん
2011/03/04(金) 20:19:58.84なんか塗りつぶされてしまう
fillrectの使い方がおかしいのだろうか
1×1にしてるのに
0725デフォルトの名無しさん
2011/03/04(金) 23:33:58.44あとは一度に沢山試行したら結果的に満遍なく分布するから疎になるように試行回数を減らすとか
0726デフォルトの名無しさん
2011/03/04(金) 23:44:12.180727デフォルトの名無しさん
2011/03/07(月) 17:37:37.002x2 ?
0728デフォルトの名無しさん
2011/03/08(火) 03:11:21.051×1にしてる…はずなんだけど…おかしい
塗りつぶされてしまう
0729デフォルトの名無しさん
2011/03/08(火) 19:53:04.550730デフォルトの名無しさん
2011/03/09(水) 01:26:51.51javaにputみたいな関数ないし。
0731デフォルトの名無しさん
2011/03/09(水) 04:28:23.410732デフォルトの名無しさん
2011/03/13(日) 20:02:53.12java大分忘れたけど、setPixel(もしくはそれっぽいの)で良いんじゃ。。。
0733デフォルトの名無しさん
2011/03/15(火) 16:37:07.780734デフォルトの名無しさん
2011/03/21(月) 13:12:14.78PropertyListenerじゃないの?
せめてActionクラスから変更できて欲しいんだけど。
自前でモデルオブジェクトとCompornentをバインドする
コードを書くのがめんどい。
0735デフォルトの名無しさん
2011/03/21(月) 13:20:25.850736デフォルトの名無しさん
2011/03/21(月) 13:23:38.750737デフォルトの名無しさん
2011/03/21(月) 23:54:26.96何を言いたいのかよく解らないがなんか勘違いしてないか?
0738デフォルトの名無しさん
2011/03/22(火) 07:06:42.02controllerがbeanのproperty変更→beanがリスナーcompornentを更新
てな変更の伝達を行いたいわけだけど。 何か変?
まぁ、今のswingなら素直に実装出来ないから変では有るんだろうけど。
0739デフォルトの名無しさん
2011/03/22(火) 08:38:53.91ってのはCompornentListenerのこと?
0740デフォルトの名無しさん
2011/03/22(火) 09:24:23.45半径を入力するための JTextField
bean を見える形で描画する JPanel
なんていうものがあったとき、
1. JPanel を bean に propertyChangeListener として登録。
2. 半径をテキストフィールドで入力
3. beanにsetRadius()
4. bean が PropertyChangeSupport#firePropertyChange などする
5. JPanelに反映
みたいな話だと思うので別におかしなところはないと思う。
JComponent が implements PropertyChangeListener でない理由はよく分からないけど、
意味のある使い方をするときはどうせ propertyChange メソッドを実装しなけりゃならないので、
実装してデフォルトの空実装を提供する必要はないと判断したんじゃないだろうか。
メソッド1つしかないし。
0741デフォルトの名無しさん
2011/03/22(火) 20:47:22.28まさしくそんなかんじ。
実際には、画像の情報のbeanを用意して、
ウインドウのタイトルにbeanが持つ画像のファイル名をだしたり、
リストにbeanの持つ詳細情報を表示させるって感じ。
そんで画像の切り替えはbeanの操作だけで行うと。
しかし、よく考えると、CompornentをPropertyCangeListinerにできるとまずいね。
titleの変更を複数のbeanからできちゃう。
Actionクラスみたいな感じで操作できるといいんだけど。
0742デフォルトの名無しさん
2011/03/23(水) 02:21:13.82ああ、だからこういったのか。
java beansはたしかにMVCのMに相当するけどModelに相当することをやるための仕様じゃなくて
再利用可能なコンポーネントを定義して(主にRAD環境から)使い回すための仕様だから普通に
SwingのMVCに従って「ウインドウのタイトルにbeanが持つ画像のファイル名をだしたり...」を実装したほうが良いと思うよ。
java beansのしがらみに縛られる必要性はないんでしょ?
0743デフォルトの名無しさん
2011/03/23(水) 04:37:38.85ただswingのしくみを正確に理解してないとM-CVでもMV-Cでも難しいだろうね。
0744デフォルトの名無しさん
2011/03/23(水) 18:02:24.06そうだね。単にbeanの資産を生かしたいってだけだったから、そこまでこだわる必要もないかもね。
>>742-743
swing流MVCってよくわかんない。
documentインターフェースとか、文字列系
Compornent全般で使えるわけじゃないところが。
個人的にいびつな感じがする。
てか、わたしのswing流MVCに対する知識が無いだけ
なのかもしれないけど。
swingでのMVCってのはこうだってのがあったら教えてよ。
0745デフォルトの名無しさん
2011/03/23(水) 18:07:17.840746デフォルトの名無しさん
2011/03/25(金) 09:07:16.830747デフォルトの名無しさん
2011/03/26(土) 23:41:43.820748デフォルトの名無しさん
2011/03/26(土) 23:58:10.14そもそもなんだよ?
0749デフォルトの名無しさん
2011/03/27(日) 10:48:46.96Guiに依存する所はswing
そうで無い所はswing色が無いか薄い
そんな印象
(違ってたらスマソ。でも触った感じ、そう思った)
0750デフォルトの名無しさん
2011/03/28(月) 23:41:54.77サーバサイドから Java 始めた奴って MVC がサーバサイドの話と思ってるのかもな。
0751デフォルトの名無しさん
2011/03/29(火) 08:07:08.87というか使う側がおかしいんだろうけど。
なんせモデルに対してビューが複数無い。
それどころかモデルがそもそも怪しい。
0752デフォルトの名無しさん
2011/03/29(火) 16:26:05.03複数あるよ。
0753デフォルトの名無しさん
2011/03/29(火) 21:20:12.25java beansはどっちかというとアレやるための仕様だよな。適用分野が違う。
0754デフォルトの名無しさん
2011/03/29(火) 22:29:37.240755デフォルトの名無しさん
2011/03/29(火) 23:43:17.13n層データ構造はMS流MVC亜種。
MVCも好い加減流派が多すぎる。
Cocoaには少し感動したけど、あれも元のSmalltalkとは異なるって話だし。
Smalltalk知らんので、そっちは何とも言えんけど。
0756デフォルトの名無しさん
2011/03/30(水) 01:24:58.82んでNextStepはSmalltalkの一部に影響受けてる。ついでにjavaもOPENSTEPの影響受けてるよ。
SmalltalkはSelfになったしMVCはMorphicになった。MVCが独り歩きしてるだけ。
どっちかというと変則のMVCはOPENSTEPあたりの影響。
0757デフォルトの名無しさん
2011/03/30(水) 07:59:33.55時間当たりの放射線量とか月当たりの売り上げみたいな経過を
グラフとテーブルで表現とか見たこと無いんだが。
この場合放射線の経過と売り上げの経過がモデルで、
グラフとテーブルがビューね。
動画サイトは動画モデルに対してサムネと動画プレイヤーというビューを
持てる筈だけどそんな実装にはなってないだろうなぁ。
0758デフォルトの名無しさん
2011/03/30(水) 08:28:05.18年月をスライダーにバインドして、抽出結果をテーブル(グラフ)表示ってのはダメなのかね。
0759デフォルトの名無しさん
2011/03/30(水) 13:20:01.88内部構造がTreeSetとHashSetぐらい全く違うモデルに取り替えても、
一切ビューの変更が無いのであればあり。
じゃないとブロードキャストの必要が無いwebでモデルを使う意味がない。
0760デフォルトの名無しさん
2011/03/30(水) 13:53:12.99ジャバではボタンにアクション・リスナーをaddするんだからw
0761デフォルトの名無しさん
2011/03/30(水) 13:57:11.380762デフォルトの名無しさん
2011/03/30(水) 14:05:13.880763デフォルトの名無しさん
2011/04/02(土) 09:24:27.93デフォルトでは日本語フォントが出ないけど、設定すれば、表示は問題ない。
でもテキスト入力で、IMEのインライン入力(On the spot)ができない。
あとはTableViewが、JTableなみのスケーラビリティあれば、Swingの代替になるかも。
0764デフォルトの名無しさん
2011/04/03(日) 22:32:26.74javaの問題
0765デフォルトの名無しさん
2011/04/04(月) 12:42:33.97swing出来てるじゃん。
あれは、on the spotじやなくてover the spot?
pivotはoff the spotなのよ。IMEの独立ウィンドウで入力。
0766デフォルトの名無しさん
2011/04/04(月) 12:57:47.20IMEに変換前文字列描かせるover the spotはサポートしてないよ。
0767デフォルトの名無しさん
2011/04/06(水) 01:12:53.86早速画面を作ったのですが、
JTextField でフォントサイズ18ptと文字(半角)数N文字にぴたりと合う大きさにしたいのですが、
どうすればよいでしょうか?
0768デフォルトの名無しさん
2011/04/06(水) 09:10:58.99java.awt.FontMetrics
0769デフォルトの名無しさん
2011/04/07(木) 00:16:41.28JTextField#getPreferredSize()呼べばたぶん教えてくれるよ
大きさ調整はLayoutManagerにやらせるのが普通だけど
P198 lastRow=row; row++;
ではなくて
row++; lastrRow=row;な
0772デフォルトの名無しさん
2011/04/27(水) 15:13:50.60JFrame1個作ってハメるJPanelを切り替えてく感じ?
JFrameを作っては消し作っては消ししてく感じ?
0773デフォルトの名無しさん
2011/04/27(水) 16:23:04.690774デフォルトの名無しさん
2011/04/27(水) 16:49:23.63全画面メモリに保持する必要ないんだけど
CardLayoutは適切?
0775デフォルトの名無しさん
2011/04/27(水) 20:30:25.650776デフォルトの名無しさん
2011/04/30(土) 14:44:56.750777デフォルトの名無しさん
2011/05/02(月) 20:25:50.58Windows7のタスクバーでアイコンまとめる方法ない?
普通のWindowsアプリなら同じプログラムならまとめてくれるんだけど
Javaだとまとまらない
0778デフォルトの名無しさん
2011/05/02(月) 21:09:33.18チェックして、起動してたらそっちに制御を渡してウィンドウだけ増やす、という動
きをさせるんじゃなかったっけ?
JavaインタプリタのWinMain自体には手を入れられないから、Javaレベルで
同一アプリケーションが既に起動しているかをチェックすることになるんだろうか。
0779デフォルトの名無しさん
2011/05/02(月) 22:21:49.10前にプロセス一覧取得するのにいろいろ調べたけど
結局Runtime.exec() で、tasklistプロセス叩いてその結果から取得するって方法しかわからなかった
それともプロセス間通信するクライアントとサーバ作るような感じなのか・・?
0780デフォルトの名無しさん
2011/05/02(月) 22:25:40.57誰もlistenしてなかったらそこで要求を待ちつつウィンドウを開く。
先任者がlistenしてたらそいつに要求を投げて終了。
とかしてるのがあった、ような…
0781デフォルトの名無しさん
2011/05/02(月) 22:35:59.50特定ファイルをFile#createNewFile()で作成するのに成功するか失敗するか、
0782デフォルトの名無しさん
2011/05/02(月) 23:24:24.76これが一番シンプルな方法かな
作り足すの大変だけど、同時に多いときで10個ぐらい起動したいから、やるしかないかなあ
他に方法なければw
>>781
起動してるかどうかを確認する方法は、そういうのでもいんだけどねえ・・
純粋にプロセス間通信か、ロックファイルチックなのに必要な情報書いて
そのロックファイルを1つのプロセスでタイマー監視するとかか
0783デフォルトの名無しさん
2011/05/03(火) 09:03:21.03サンクス
0784デフォルトの名無しさん
2011/05/10(火) 11:22:08.45SwingWorkerのサンプルがJRE6ばっかりなので判断なかなか付きません。
0785デフォルトの名無しさん
2011/05/12(木) 15:04:12.580786デフォルトの名無しさん
2011/05/12(木) 20:08:01.601つめのプログラムがリクエスト待ちスレッド1つ用意しておいて、
2つ目以降は、起動済みの1つめに対して、「このパラメータでもう1つウィンドウ
開いて」とリクエストして終了するだけだし。
0787デフォルトの名無しさん
2011/05/13(金) 04:52:44.04swingで重たい描画してるとかネットやファイルのioで待たされたりしてる時とかもっさりしない?
0788デフォルトの名無しさん
2011/05/14(土) 15:51:18.140789わかんないんです(><) ◆WAkan9Ey1g
2011/05/14(土) 19:45:20.330790デフォルトの名無しさん
2011/05/15(日) 05:17:04.5810個同じスレッド走ってたほうが軽いんじゃね
ケースによるけど
0791デフォルトの名無しさん
2011/05/17(火) 01:12:54.06awtutilitiesがエラーでてしまいます
0792デフォルトの名無しさん
2011/05/17(火) 17:14:56.030793デフォルトの名無しさん
2011/05/19(木) 12:01:07.45枠無くすためにWin32のPOPUP WINDOWでウィンドウ生成してる?
0794デフォルトの名無しさん
2011/05/19(木) 12:21:34.88親ウィンドウを透明にして子ウィンドウをWS_THICKFRAMEでつくってる
0795デフォルトの名無しさん
2011/05/24(火) 02:39:36.86できる
0796デフォルトの名無しさん
2011/06/02(木) 13:41:08.91↓みたいな場合にSwingUtilities.invokeLater()やらrevalidate()やらはどこに入れるべき?
dlTask = new DownloadTask(progressBar);
futureTask = new FutureTask(dlTask);
new Thread(futureTask).start();
public class DownloadTask implements Callable {
public DownloadTask(progressBar) {
this.progressBar = progressBar;
}
/* 中略 */
public Data call() {
while {
//データダウンロード処理の進捗表示にprogressBarを使いたい
}
return data;
}
}
0797デフォルトの名無しさん
2011/06/03(金) 12:43:59.22これから、Swingで色々作ろうと思うよ。
0798デフォルトの名無しさん
2011/06/03(金) 18:24:32.93Swing!Swing!Swing!
0799デフォルトの名無しさん
2011/06/03(金) 20:20:32.67なにかいろいろ間違っている
callのwhileはSwingWorkerで実装するべき
0800デフォルトの名無しさん
2011/06/03(金) 20:34:09.29http://terai.xrea.jp/Swing/SwingWorker.html
どうしてもCallableでやるならJProgressBarにpaintImmediatelyで再描画すればいけるはず
だがとてもいやな予感がする
0801796
2011/06/05(日) 14:30:58.72で、プログレスバーを更新するには
doInBackgroundの中のwhile内でpublishなりfirePropertyChangeなりsetProgress なりを呼ばないといけないと理解したんだけど
できればバックグラウンドで走らせる処理はSwingWorker内に書くんじゃなくて別クラスに分離したいんだけど、
while内でsetProgress呼ばないといけないし、分離する方法ない?
0802デフォルトの名無しさん
2011/06/05(日) 20:18:11.70DownloadTaskクラスにAtomicIntegerとかでprogressみたいな名前で進捗プロパティを作って、
callのwhileが走ってるときはそのプロパティ値をいじる。
JProgressBarの更新は、このDownloadTaskの実行と進捗を監視するSwingWorkerクラスを作ってやる。
こんな感じに実装↓
class ProgressWorker extends SwingWorker<Data, Integer> {
private final BoundedRangeModel model; // JProgressBar のモデル
private final DownloadTask dlTask;
private final ExecutorService dlExecutor = Executors.newSingleThreadExecutor(); // ダウンロード実行スレッド
public ProgressWorker(BoundedRangeModel model, DownloadTask dlTask) {
this.model = model;
this.dlTask = dlTask;
}
protected Data doInBackground() {
Future<Data> downloading = dlExecutor.submit(dlTask);
taskExecutor.shutdown();
while(! downloading.isDone()) {
publish(downloading.getProgress.intValue())
Thread.sleep(50); // 進捗は適度にチェック
}
return downloading.get();
}
0803デフォルトの名無しさん
2011/06/05(日) 20:19:15.78protected void process(List<Integer> progress) {
// ここはEDT上だからモデルを変更すればJProgressBarも更新される
if (progress.size() > 0) model.setValue(progress.get(progress.size()-1));
}
protected void done() {
model.setValue(model.getMaximum());
Data data = get();
// dataをなんとかする処理...
}
}
んで、こんなふうに使う↓
DownloadTask dlTask = new DownloadTask();
ProgressWorker dlWorker = new ProgressWorker(progressBar.getModel, dlTask);
dlWorker.execute();
0804デフォルトの名無しさん
2011/06/05(日) 23:47:15.780805デフォルトの名無しさん
2011/06/05(日) 23:51:23.03そんなことできるの?
0806デフォルトの名無しさん
2011/06/06(月) 00:49:26.760807デフォルトの名無しさん
2011/06/06(月) 01:06:37.200808デフォルトの名無しさん
2011/06/06(月) 20:53:28.260809デフォルトの名無しさん
2011/06/06(月) 22:26:19.290810デフォルトの名無しさん
2011/06/08(水) 16:02:02.61↑きしだのはてな
ここで、JavaFXのWebPaneをSwingにつんで色々アプリを作る連載を5回くらいやってるから
やってみるとおもしろいよ。
SwingでWebKitブラウザが使えるなんて、もう舞い上がるほどうれしい。
0811デフォルトの名無しさん
2011/06/08(水) 16:16:27.37どうせなら100%javaで実装してくれたほうが良かった。
0812デフォルトの名無しさん
2011/06/08(水) 17:57:25.94ああ、Geckoだ。あれもできれば、Javaから使いたい。いや、使えるように是非してください!
0813デフォルトの名無しさん
2011/06/08(水) 18:30:34.28Swing 使うならとことん Swing で作りきれ
HTML の出る幕なし
ちょっとハイパーリンクとか埋め込みたいってんなら、HTMLEditorKit があるし
それでじゅうぶん
0814デフォルトの名無しさん
2011/06/08(水) 19:58:24.11それとMozillaは組み込みGeckoのサポートを廃止するから使わないほうが賢明だろうな
0815デフォルトの名無しさん
2011/06/08(水) 21:23:01.250816デフォルトの名無しさん
2011/06/09(木) 00:19:05.560817デフォルトの名無しさん
2011/06/09(木) 02:55:43.18なんでもかんでも自分でやろうとして抱え込んじまうような
わがままで不器用なやつだから
0818デフォルトの名無しさん
2011/06/09(木) 04:59:03.82いまはh264の縁故/デコはgpuに丸投げとか他力本願な技術が多く成ってるからなあ。
逆に言うとwebkitの穴にみんなが依存して抜けられなく成ってしまってる。もうflashの穴にみんなうんざりしてたはずなのにね。
gecko消えたあとで勝利宣言でも出すんじゃないw まあgeckoが残す価値のあるエンジンとも思えないけど。
0819デフォルトの名無しさん
2011/06/09(木) 06:28:29.180820デフォルトの名無しさん
2011/06/09(木) 10:23:36.61OSに依存しない様に作ったから
>>817は良い例えになってる
0821デフォルトの名無しさん
2011/06/09(木) 19:44:04.360822デフォルトの名無しさん
2011/06/09(木) 19:49:44.320823デフォルトの名無しさん
2011/06/09(木) 23:15:54.310824デフォルトの名無しさん
2011/06/10(金) 01:18:30.19c言語。。。かなぁ
文法は単純で、文字を表示させるのにもライブラリが必要
(仕様にライブラリも含まれてるけど)
逆に言えば、そのお陰で色んなプラットフォームに対応出来た
(プラットフォームに合わせてライブラリを変えれば良い)
0825デフォルトの名無しさん
2011/06/11(土) 10:12:25.24(4年前のMacBookで10秒くらい)起動を速くする方法はありますか?
0826デフォルトの名無しさん
2011/06/11(土) 10:14:04.930827デフォルトの名無しさん
2011/06/11(土) 12:12:08.22OSによって層の厚みが違うからね
unix系の方が層が薄くて速いんだよ
pc買い換えるか、OS変えるしか無い
あ、exeファイルに変換する手も有ったか
0828デフォルトの名無しさん
2011/06/12(日) 00:28:09.070829デフォルトの名無しさん
2011/06/12(日) 00:34:24.080830デフォルトの名無しさん
2011/06/12(日) 17:29:08.240831デフォルトの名無しさん
2011/06/12(日) 17:34:52.060832デフォルトの名無しさん
2011/06/12(日) 17:51:40.75リリースまで1年以上もあって人も金も豊富なオラクルなのに未だにやっつけ設計みたいなことをやってるし、ジャバプラットフォームにはもうサンのころの「やさしさ」は残ってないなって思った。
0833デフォルトの名無しさん
2011/06/12(日) 20:12:50.31シングルプロセスマルチスレッドのflashplayerより
マルチプロセスマルチスレッドのちょろめの方が安定してる。
大規模なメモリー空間が必要な場合、シングルプロセス
マルチスレッドは弱い。スレッドの開放 == リソースの開放にならないからね。
0834デフォルトの名無しさん
2011/06/13(月) 12:52:21.44オラクルに買収されなくてibmに買収されても、産の頃のやり方はibmのルールに改められるよ。
そのまま産とともにジャバも消えてしまって消去法でc++の復権のほうが良かった?
0835デフォルトの名無しさん
2011/06/13(月) 13:18:39.79addAllとかコレクションに配列を混ぜようとしてるし、setAllとか関数名も最悪だし、ベータの段階でもう既にジャバのほどよいフレーバーを感じるようなプラットフォームじゃない。
0836デフォルトの名無しさん
2011/06/14(火) 02:01:24.21そいつ昔から鯖そのものに張り付いてるbotだからスルーしろ。
0837デフォルトの名無しさん
2011/06/14(火) 02:59:36.29理想的実装のヲレフレームワークで包んでしまって終わりなのかもしれないが。
0838デフォルトの名無しさん
2011/06/15(水) 15:17:41.33オラクルって言うところはこういう泥くさい20年以上前のパラダイムのままで止まっているところだったの?
0839デフォルトの名無しさん
2011/06/15(水) 16:26:01.26JTableとDBやらXMLやらテキストファイルでO/Rマッピングできたら、それはもう最高さ!
0840デフォルトの名無しさん
2011/06/15(水) 20:07:16.180841デフォルトの名無しさん
2011/06/15(水) 20:08:02.990842デフォルトの名無しさん
2011/06/16(木) 06:49:49.820843デフォルトの名無しさん
2011/06/16(木) 18:32:18.790844デフォルトの名無しさん
2011/06/16(木) 23:45:26.930845デフォルトの名無しさん
2011/06/20(月) 04:41:33.01JAXBでやってるけど
0846デフォルトの名無しさん
2011/06/20(月) 22:31:42.670847デフォルトの名無しさん
2011/06/21(火) 01:06:51.780849\
2011/06/21(火) 03:11:41.35全部JavaFXでアプリ組むとSWINGの5倍遅いぞ。まじめに。
ありゃ、完全にマルチコアじゃないとあかんわ。
0850デフォルトの名無しさん
2011/06/21(火) 04:50:53.590851デフォルトの名無しさん
2011/06/21(火) 05:56:14.260852デフォルトの名無しさん
2011/06/21(火) 15:41:57.400853デフォルトの名無しさん
2011/06/21(火) 19:23:11.290854デフォルトの名無しさん
2011/06/27(月) 14:32:29.090855デフォルトの名無しさん
2011/06/27(月) 15:08:10.69もう Windows 8 のタイルベースのUI やら HTML5 やら
新しいユーザインターフェースがいよいよ主流になろうか
ってときに、いま簡単に Swing ベースのアプリケーションを
記述と申されても、10年遅い
0856デフォルトの名無しさん
2011/06/27(月) 15:30:42.34swingは万能な設計を目指した割にはなんか中途半端で使いにくいし、java以外の他のtoolkitに馴染んでる人が今度のxProperty()なんてのもgetContentPane()の時と同じで絶対受け入れないだろうね
javafxなんてどうでもいいからswing frameworkとかswinglabsの成果をjava7に入れてほしい
0857デフォルトの名無しさん
2011/06/27(月) 16:19:07.54ベータのドキュメントを見てもswing apiの品質にすら達していないのにあと半年で正式版リリースできるはずないでしょ。
appletの起動の遅さでflashに流れたのと同じで、早く出したい早く追いつきたいというだけでたいした目標もなく言語やapiの品質も中途半端でそんなやっつけ仕事のままでリリースすると今回も誰からも相手にされなくなるんじゃないかと思う。
肝心のswing開発者に対してjavafxはswingとまったく別物って言うメッセージすらも届いてないみたいだし、javaじゃない人にとってはhtml5,css3もそろそろ見えてくるだろうし、
そういう人たちがswing,javafxの複雑なライブラリベースのapiやsyntaxを勉強する時間はないだろう。
勉強すればそれなりにjavaの凄さが分かるんだけど、金と時間をかけて勉強してswing,javafxベースで作っても2011年現在のhtml,webベースのものとたいして変わりない。
0858デフォルトの名無しさん
2011/06/27(月) 16:24:59.340859デフォルトの名無しさん
2011/06/27(月) 16:44:53.220860デフォルトの名無しさん
2011/06/27(月) 17:19:44.46もうあきらめて、Java はIDE激しく使ってコード書いてくものと決めつけてもらっていいよw
Swing は、ところどころ、まああんまりよくないなと思うとこはありつつも
それでも GUI のAPIとしては優秀な部類 これは少しづつメンテナンスするだけでいい
そんなのより、マルチタッチパネル向けの GUI に心機一転、ゼロからしっかりしたAPI作ってほしい
0861デフォルトの名無しさん
2011/06/27(月) 17:45:34.12Googleと仲良くしてくれ
0862デフォルトの名無しさん
2011/06/27(月) 19:45:34.96そうだよね(´・ω・`)
おまけに、使い心地も良くないし。
QtとかSwingは10年以上つかえるもんね。
0863デフォルトの名無しさん
2011/06/28(火) 02:41:38.0410年前と変わらずswingがつかえるjavaを作ったサンは儲けきれずに消えてしまった訳で。
逆にアンドロイドapiでも動作するウィンドウズ用のランタイム入りのj2seを配布して欲しいかなw
せっかくどこでも動く仕組みを採用してるから、グーグルアプリをどこでも動く様にして欲しいw
0864デフォルトの名無しさん
2011/06/28(火) 03:44:16.68sunが消えた理由はそこじゃないやろ
0865デフォルトの名無しさん
2011/06/28(火) 05:41:45.92そういうゴミ、いちいち相手にしなくていいんじゃないの?
0866デフォルトの名無しさん
2011/06/28(火) 05:55:32.27インジェクション・パターンが確立された現在では。
0867デフォルトの名無しさん
2011/06/28(火) 06:21:52.57そうだった
ごみん
0868デフォルトの名無しさん
2011/06/28(火) 07:39:43.680869デフォルトの名無しさん
2011/06/28(火) 10:29:53.78Swingでも十分だよ。
0870デフォルトの名無しさん
2011/06/28(火) 19:59:35.980871デフォルトの名無しさん
2011/06/28(火) 20:22:47.530872デフォルトの名無しさん
2011/06/28(火) 20:42:50.690873デフォルトの名無しさん
2011/06/28(火) 21:24:05.050874デフォルトの名無しさん
2011/06/29(水) 00:05:53.10それをswingworkerでやればいいんだけど、なんだかね・・・
0875デフォルトの名無しさん
2011/06/29(水) 00:18:40.670876デフォルトの名無しさん
2011/06/29(水) 00:25:34.58874みたいな動機でマルチスレッドにしても
頻繁にデッドロックするようになるだけだと思うが。
0877デフォルトの名無しさん
2011/06/29(水) 02:39:02.07Swingはシングルスレッドなので…というようなことが
言い訳がましく記述されてるのをしゅっちゅう見かけたのですが、
そうじゃないGUIフレームワークなんてあるのでしょうか?(Javaに限らず)
AWTはよく知らないのですが、もしかしてEDTみたいなの気にせずどのスレッドからでもアクセス可だったりしたのでしょうか?
0878デフォルトの名無しさん
2011/06/29(水) 05:13:08.210879デフォルトの名無しさん
2011/06/29(水) 09:17:23.79actionPerformedの中でGUIパーツをいじりたい時って、よく無名クラスを使って
button.addActionListener(new AbstractAction() { ... });
みたいな書き方するけど、
ViewとControllerのクラスを分けるべきとか気にしなくていいの?
てか、View-Controller分ける主義で無名クラス使わないようにしてる人いる?
0880デフォルトの名無しさん
2011/06/29(水) 09:20:25.830881デフォルトの名無しさん
2011/06/29(水) 09:34:59.590882デフォルトの名無しさん
2011/06/29(水) 09:36:59.25なるだけ使わないようにしてる
ごちゃごちゃしてしまって、俺みたいな馬鹿はIDEを使っても訳が分からなくなるから
0883デフォルトの名無しさん
2011/06/29(水) 09:43:35.99リスナは所詮リスナであってController専用というわけでは無い。
押されたときだけボタンアイコンがアヘ顔になるとかいう処理は、
Viewと同じコンパイル単位にまとめたくなるかなー。
0884デフォルトの名無しさん
2011/06/29(水) 10:42:21.25サンクス
Listener=Controllerじゃなくて
Viewと明確に分離できるListenerがControllerって考え方かあ
調べたらSwingってViewとControllerをUIオブジェクトって形で統一しちゃってるのね。
0885デフォルトの名無しさん
2011/06/29(水) 10:49:12.660886デフォルトの名無しさん
2011/06/29(水) 11:19:51.22ModelとViewとの仲介だけを行うControllerクラスを作る
Viewのコンポーネントをゲッターで公開しないといけないが、コードがすっきりする
0887デフォルトの名無しさん
2011/06/29(水) 14:22:08.06ButtonModel とか、TableModel とか、Swing の設計ミスだと思うよ
*Model 名前ついたクラスぜんぶ明らかに要らない
こういう GUI の基本的なヴィジットに MVC モデル適用するのは間違い
TableModel は CellDataProvider みたいな名前にして、単純に表の表示に
便利なクラスですよ みたいな感じにすればよかった
0888デフォルトの名無しさん
2011/06/29(水) 14:32:37.33ではボク達ゆとり世代は次のjavafxに期待しましょうか。
0889デフォルトの名無しさん
2011/06/29(水) 15:28:06.47秋まで待とう
0890デフォルトの名無しさん
2011/06/29(水) 21:15:10.270891デフォルトの名無しさん
2011/06/29(水) 21:18:41.57Widget
0892デフォルトの名無しさん
2011/06/29(水) 21:25:27.50とかいう動きはまだ出てこないの?JDK7では見送られるんだろうけど
0893デフォルトの名無しさん
2011/06/30(木) 23:15:26.220894デフォルトの名無しさん
2011/06/30(木) 23:16:52.110895デフォルトの名無しさん
2011/07/01(金) 00:45:58.740896デフォルトの名無しさん
2011/07/02(土) 23:49:28.000897デフォルトの名無しさん
2011/07/21(木) 14:39:22.973Dも別に遅くないぞ?
0898デフォルトの名無しさん
2011/07/23(土) 05:50:21.620899デフォルトの名無しさん
2011/07/23(土) 05:51:21.38安価忘れた
0900デフォルトの名無しさん
2011/07/28(木) 21:38:26.92初動が遅くないとせっかくつくったスプラッシュを出す理由がなくなるじゃないか
0901デフォルトの名無しさん
2011/07/28(木) 21:39:10.670902デフォルトの名無しさん
2011/07/28(木) 21:44:20.610903ぬるぽ
2011/07/28(木) 21:45:14.030904デフォルトの名無しさん
2011/07/28(木) 22:08:09.99スプラッシュ出したから起動が遅くなる心配はあまりしなくてよいのでわ
0905デフォルトの名無しさん
2011/07/29(金) 21:11:01.21おそらく只じゃださんのだろうなぁ
0906デフォルトの名無しさん
2011/07/30(土) 01:55:11.510907デフォルトの名無しさん
2011/08/13(土) 09:01:15.260908デフォルトの名無しさん
2011/08/13(土) 10:50:14.05DefaultTableCellRenderer を継承したやつを実装して、
table.setDefaultRenderer(Object.class, render)
色変えたくなったら repaint() でもたぶんいいし、
DefaultTableModel の fireTableDataChanged やら fireTableCellUpdated やらを
実行すればよい
0909デフォルトの名無しさん
2011/08/13(土) 13:38:43.570910デフォルトの名無しさん
2011/08/13(土) 22:56:51.91サンクス
0911デフォルトの名無しさん
2011/08/14(日) 21:24:52.400912デフォルトの名無しさん
2011/08/14(日) 22:19:40.01Swingと比べて利点は?
0913デフォルトの名無しさん
2011/08/15(月) 10:37:45.46UIが綺麗。遅いけどね・・5倍くらい。
0914デフォルトの名無しさん
2011/08/15(月) 12:23:48.540915デフォルトの名無しさん
2011/08/15(月) 12:29:26.880916デフォルトの名無しさん
2011/08/15(月) 12:37:14.88WindowsオンリーならわざわざJavaFXなんて使うことなんて滅多にないでしょ。
0917デフォルトの名無しさん
2011/08/15(月) 14:31:47.820918デフォルトの名無しさん
2011/08/15(月) 15:14:41.09Java低速GUI Swing & JavaFX
かね
0919デフォルトの名無しさん
2011/08/15(月) 15:58:57.060920デフォルトの名無しさん
2011/08/15(月) 23:22:29.85次はJava GUIだけにしてやっていいんじゃね
0921デフォルトの名無しさん
2011/08/16(火) 10:12:22.85JavaGUI Swing & JavaFX
だね
0922デフォルトの名無しさん
2011/08/16(火) 15:56:33.61JavaFXは低速なんだよ(´ω`)
0923デフォルトの名無しさん
2011/08/17(水) 20:02:27.16SwingWorkerでプログレスバーを表示させただけで明らかに処理時間が遅くなるクソなのに
何の根拠があって低速を取ろうというんだ
0924デフォルトの名無しさん
2011/08/17(水) 21:06:19.84もうみんなマイクロソフトの方に行ってるからジャバでグーイしようなんて奴は一人もいない
0925デフォルトの名無しさん
2011/08/18(木) 01:31:37.39俺はJavaでGUIやっているぞ
0926デフォルトの名無しさん
2011/08/18(木) 13:19:45.290927デフォルトの名無しさん
2011/08/18(木) 19:02:47.74言語つーか、開発環境の便利さのせいだけど
0928デフォルトの名無しさん
2011/08/18(木) 19:51:39.390929デフォルトの名無しさん
2011/08/18(木) 20:55:35.000930デフォルトの名無しさん
2011/08/18(木) 21:10:44.270931デフォルトの名無しさん
2011/08/19(金) 13:38:10.71ユーザのセッションとかでメモリ不足食うより、
SwingでUI組んでユーザ側にデータ蓄えさせといて、
一気にDBにデータぶち込んだ方がパフォーマンスいいだろ?
0932デフォルトの名無しさん
2011/08/19(金) 13:40:44.94天才現る
0933デフォルトの名無しさん
2011/08/19(金) 15:03:21.53それが普通
0934デフォルトの名無しさん
2011/08/19(金) 22:55:24.84今時クラサバ構成かよ(w
0935デフォルトの名無しさん
2011/08/20(土) 03:44:45.76それ以外ないだろ。アホじゃないの?
0936デフォルトの名無しさん
2011/08/20(土) 04:42:21.88将来も含めれば蔵側の負担を大きくしていく方向性もバカにしたもんじゃないけどな。
0937デフォルトの名無しさん
2011/08/20(土) 04:50:44.11馬鹿だなー。今時クラサバ構成なんて。
DBコネクションが膨大になるし、APの入れ替え面倒だし…
10年以上前に捨てられたのは伊達じゃない。
さらに近年はセキュリティ絡みでPCをシンクラにする方向だから
尚更、間にAP鯖が入る。
0938デフォルトの名無しさん
2011/08/20(土) 18:04:04.660939デフォルトの名無しさん
2011/08/20(土) 21:16:20.040940デフォルトの名無しさん
2011/08/20(土) 21:28:58.47CS構成でも、Webアプリ構成でもDB接続数はかわらんだろ・・
>>938
アプリケーション(AP)サーバー(鯖)のこと
DBサーバーに入れる前に処理するアプリを積んでるやつ。要するに、サーブレットやらJSP
やらのプログラム(アプリケーション)が動いてるのをAPサーバーという。
0941デフォルトの名無しさん
2011/08/20(土) 23:23:23.55流行りかけたけどすっかり消えちまったね。
コンシューマむけではAjaxとかでいいと思うけど、業務システム系では
もっと流行ってほしかったな
0942デフォルトの名無しさん
2011/08/22(月) 13:56:27.87大天才現る
0943デフォルトの名無しさん
2011/08/25(木) 05:25:28.36そうなのか…一時期モバイルMacで開発するの流行ってたけど
あれにはJavaEEプログラマは含まれてなかったのか。
0944デフォルトの名無しさん
2011/08/25(木) 19:28:46.870945デフォルトの名無しさん
2011/08/26(金) 19:15:08.80「一人がアパッチでしょ」って答えやがったぞ。
0946デフォルトの名無しさん
2011/08/26(金) 21:16:36.320947デフォルトの名無しさん
2011/08/28(日) 23:18:05.580948デフォルトの名無しさん
2011/08/29(月) 00:18:06.620949デフォルトの名無しさん
2011/08/29(月) 00:21:39.090950デフォルトの名無しさん
2011/08/29(月) 00:38:11.65天才現る
0951デフォルトの名無しさん
2011/08/29(月) 07:28:36.51イントラで完結するならそれもアリ。
DBMSとSwingアプリが直接コネクション張って通信するのは避けた方が良いけれど
それくらいならAS立てるまでもない。
0952デフォルトの名無しさん
2011/08/29(月) 17:48:02.210953デフォルトの名無しさん
2011/08/29(月) 18:06:35.580954デフォルトの名無しさん
2011/08/30(火) 05:11:55.09javaでウィンドウマネージャもどき作らなきゃいけないとは。ついでに非クライアント領域を半透明にしてリッチと言い張るか。
SwingXがほしいな・・・SwingX RendererとPainters APIを標準に組み込んでくれ。
0955デフォルトの名無しさん
2011/08/30(火) 08:45:40.810956デフォルトの名無しさん
2011/08/30(火) 23:00:34.960957デフォルトの名無しさん
2011/08/31(水) 00:12:53.310958デフォルトの名無しさん
2011/09/05(月) 01:37:23.06さすがに5倍は言い過ぎだろ。
…だよね?
0959デフォルトの名無しさん
2011/09/05(月) 01:41:25.98ApacheもAPサーバ出してるぞ。
0960デフォルトの名無しさん
2011/09/05(月) 14:43:00.410961デフォルトの名無しさん
2011/09/05(月) 20:40:55.97古い情報ですが、これを見るとSwingより速そうですね。
0962デフォルトの名無しさん
2011/09/05(月) 22:14:34.470963877
2011/09/07(水) 13:26:06.57それが駄目になったから>>877みたいにシングルスレッドが強調されてたわけか。
0964デフォルトの名無しさん
2011/09/07(水) 22:40:08.55そりゃまあ描画処理が加わる分、全く同じ速度でってわけには行かないだろうけど、
明らか、というほど体感できたことはないなあ。
スレッド違うし。
0965デフォルトの名無しさん
2011/09/08(木) 11:45:55.87スレタイどうすんのよ?
0966デフォルトの名無しさん
2011/09/08(木) 13:06:38.370967デフォルトの名無しさん
2011/09/08(木) 15:18:08.260968デフォルトの名無しさん
2011/09/09(金) 05:22:34.66JListにフォーカスがあるときに、
例えばiキーを押すとiで始まる行に移動しますが、
これを禁止するにはどうすればいいでしょうか。
ググったのですが出てきませんでした。
よろしくお願いします。
0969デフォルトの名無しさん
2011/09/09(金) 18:22:38.60過去ログに似たようなの有った。
http://gline.zapto.org/log/read.php/tech/1095398949/404-414
0970デフォルトの名無しさん
2011/09/12(月) 00:01:07.69これ読んだ人いる?
0971968
2011/09/14(水) 10:21:44.23過去ログまで参照していただいて、大変恐縮です。
非常に参考になりました。
どうもありがとうございました。
本当にありがとうございます。
お礼が遅れてすみません。
0972デフォルトの名無しさん
2011/09/17(土) 17:32:40.230973デフォルトの名無しさん
2011/09/17(土) 18:16:55.390974デフォルトの名無しさん
2011/09/17(土) 18:17:16.800975デフォルトの名無しさん
2011/09/17(土) 18:21:26.20標…準…?
0976デフォルトの名無しさん
2011/09/17(土) 19:05:26.743.7使ってんならJFrameを拡張した.javaファイルを右クリックしてみ
0977デフォルトの名無しさん
2011/09/17(土) 19:33:25.290978デフォルトの名無しさん
2011/09/17(土) 19:40:45.39君以外は大抵そうだと思うけど…
0979デフォルトの名無しさん
2011/09/20(火) 09:20:33.180980デフォルトの名無しさん
2011/09/20(火) 14:13:41.830981デフォルトの名無しさん
2011/09/20(火) 18:30:04.83自動生成されるコードはNetBeansと比べるとちょっと…なのが残念。
NetBeansは自動生成コードは自分で触ることが無い(のが前提)だけど、
WindowBuilderの方は生成後のコードも触れる分余計に気になるんだよね…
>>975
リリースされてからもう3ヶ月経ってますがな。
0982デフォルトの名無しさん
2011/09/20(火) 21:20:36.220983デフォルトの名無しさん
2011/09/20(火) 23:07:54.840984デフォルトの名無しさん
2011/09/20(火) 23:23:56.51http://hibari.2ch.net/test/read.cgi/tech/1316528595/
0985デフォルトの名無しさん
2011/09/20(火) 23:29:32.60おつ!
0986デフォルトの名無しさん
2011/09/21(水) 00:48:39.33/. : : : : : : : : : : .ヽ / ィ
/. : /: : : : : : : : : : : : .\ / ┼
/. : /: : : : ハ: : :}斗、ヽ: : .| ノ
|. : /_: 斗〒\八」 ∨リリ _,_
乂レl;�W弋ノ };l_> | | ``
∠___l;人 , ─ァ ノ'ノ
|: :从ハ`┼一ィ刋:::\ r┴,
|: : : : : : :};Y/ハ{;;;;;;;;ノ /
ヽ-‐ァ‐ァ';|l/\∧イ \ /
/\/;;|l' ̄ハ } \
/ |;;メ二ニ| |
ャ、__/l;lゝ ト‐|
/ `/|_,_|;|,_,_,_,_,_ト′
/ / |==|;|=====|
∠、,,ィ〜' └r幵─‐r七
{Ξ} 匕}
0987デフォルトの名無しさん
2011/09/21(水) 04:01:25.320988デフォルトの名無しさん
2011/09/21(水) 05:04:47.720989デフォルトの名無しさん
2011/09/21(水) 06:04:26.450990デフォルトの名無しさん
2011/09/21(水) 06:05:48.98次のスレは
JavaGUI Swing & JavaFX
だね
>>922 名前:デフォルトの名無しさん 投稿日:2011/08/16(火) 15:56:33.61
>>921
JavaFXは低速なんだよ(´ω`)
0991デフォルトの名無しさん
2011/09/21(水) 09:48:34.870992デフォルトの名無しさん
2011/09/21(水) 13:34:59.00別に認知度でスレタイ決める訳じゃないから。
0993デフォルトの名無しさん
2011/09/21(水) 14:05:00.49自分で新しくスレ立てた方が
いいんじゃないか?
つーかこんな過疎スレで
これ以上荒らすのは勘弁な
0994デフォルトの名無しさん
2011/09/21(水) 17:19:26.10http://hibari.2ch.net/test/read.cgi/tech/1316592884/l50
AWTもOKだったから、JavaFXも混ぜておいたよ。
過疎スレだし、スレの活発化のためにも、JavaGUI全般ということで
一応建てておきました。
0995デフォルトの名無しさん
2011/09/21(水) 17:21:21.320997デフォルトの名無しさん
2011/09/22(木) 00:17:12.88乙そして梅
0998デフォルトの名無しさん
2011/09/22(木) 17:22:48.23馬鹿すぎてワロスwww
0999デフォルトの名無しさん
2011/09/22(木) 17:23:05.551000デフォルトの名無しさん
2011/09/22(木) 17:23:22.1310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。