1 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 23:13:39 ] ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。 しかしながら、"Java"というだけで未だに敬遠されるのが現状。 そんなSwingと引き続き付き合っていくみんなのスレッドです。 Java低速GUI Swing 8 pc12.2ch.net/test/read.cgi/tech/1227234261/ Java低速GUI Swing 7 pc11.2ch.net/test/read.cgi/tech/1204155623/ Java低速GUI Swing 6 pc11.2ch.net/test/read.cgi/tech/1190807478/ Java低速GUI Swing 5 pc11.2ch.net/test/read.cgi/tech/1161139809/ Java低速GUI Swing 4 pc8.2ch.net/test/read.cgi/tech/1140533866/ Java低速GUI Swing 3 pc8.2ch.net/test/read.cgi/tech/1121700954/ Java低速GUI Swing 2 pc8.2ch.net/test/read.cgi/tech/1095398949/ Java低速GUI Swing pc5.2ch.net/test/read.cgi/tech/1062271447/l50
2 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 23:14:24 ] VisualStudioのようなポトペタ開発環境がほしい!! NetBeans www.netbeans.org/index_ja.html Eclipse+VisualEditorPlugin www.eclipse.org/ www.eclipse.org/vep/ Jigloo cloudgarden.com/jigloo/index.html
3 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 23:15:08 ] AWTもターゲットに入ってていいんだよね? Q. AWT と Swing 混ぜちゃ駄目って聞いたんですけど 混ぜちゃ駄目なんですか・・・・? A. 今まででは、「駄目」というのが正解です。 が、現在開発中(未リリース)のバージョンではSwingとAWTの混在ができるようになっています。 正式リリースがされるまで、情報の錯綜があって混乱すると思いますが 普通の人にとっては「まだ駄目」という状況だと思ってください。 Q. Nimbusって何よ。 A. 次期Swingの標準となるとされているLAFです。 元々は、SUNのGnome環境のテーマに使われていた見た目を移植したものになります。 実装にはXMLベースでLAFを定義できるSynthLookAndFeel を利用しています。 jdk6の開発版で試す事ができます。 Q. こんなプログラムを作れって言われたんですが・・・ A. 宿題スレへどうぞ。 Q. なんでスレタイに低速って入ってるの? A. まだまだ速くなるってことさ。
4 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 00:19:25 ] スレ立て乙 Nimbus って、今でも JDK でしか使えないの? うちの環境では JRE でも Nimbus が使えるけど。 JDK もインストールしてあるから、 JRE が JDK 付属の Nimbus を読み込んでる?
5 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 00:40:25 ] Nimbusサポートは6u10以降だから、 前スレ開始とほぼ同じ時期の登場だったかな。 次スレで直せばOKじゃない?
6 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 01:33:10 ] XAML使えるようにならないかなあ
7 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 12:23:00 ] >>6 はあ?
8 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 13:27:31 ] このスレpart10だからな。 前1がSwing/AWTスレ8をディスったからテンプレにないだけで。
9 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 13:36:32 ] >>8 Swing/AWTスレ8のアドレス希望
10 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 14:00:26 ] 断る
11 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 16:00:39 ] >>8 Disられてるのは、↓のスレタイじゃないの? > Java低速GUI Swing 6 > pc11.2ch.net/test/read.cgi/tech/1190807478/
12 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 10:52:10 ] jtableでソート出きるように変更したら、うまく背景色が表示できなくなりました どなたか、教えてください //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); } }
13 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 12:48:48 ] 今は無理
14 名前:12 mailto:sage [2009/12/21(月) 14:38:45 ] >>13 どうしようもないってこと?
15 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 20:07:01 ] >12 エスパーすると、レンダラーの設定をString.classのカラムに対してやってない? table.setDefaultRenderer(Integer.class, new TestTableCellRenderer()); にしないとダメだよ
16 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 22:17:54 ] swingについて質問 コンポーネント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);
17 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 23:30:15 ] そもそも一つのコンポーネントを複数のコンテナに含めることができるのか?
18 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 23:40:20 ] >>16 コンポーネント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);
19 名前:16 mailto:sage [2009/12/21(月) 23:57:13 ] 画面のレイアウトが2種類あるのですが、ユーザに画面レイアウトを選ばせたいと考えています ちなみに、レイアウトが替わっても表示するものは同じです JPanel panel1 = new JPanel(); ← レイアウトA JPanel panel2 = new JPanel(); ← レイアウトB panel1.add(label); ←表示するもの panel2.add(label); >>18 表示する物が同じだから1つのインスタンスでどうにかしたい と思いました
20 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 02:58:29 ] >>19 CardLayout
21 名前:20 mailto:sage [2009/12/22(火) 03:00:07 ] ごめん勘違い。 同じものを配置替えするという方法を取るところだろうね。
22 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 04:01:20 ] ユーザーがレイアウトを選ぶたびに BかCに add し直すしかないのでは
23 名前:デフォルトの名無しさん [2009/12/22(火) 04:21:44 ] 同意
24 名前:16 mailto:sage [2009/12/22(火) 10:14:08 ] やっぱり、add()し直すしかないですよね 実装する時に手を抜きたかったのですが、無理ですね ありがとうございました
25 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 11:19:57 ] ある画面実行中に、各Componentの登録済み全イベント処理クラスを知りたいのですが、 Component#getListeners(Class<T> listenerType)の中にあるリスナー群がすべてのイベントになるでしょうか? つまりgetListeners(各イベントクラス)を10イベントリスナークラス分実行してとれたものを、 これ以外のイベント処理クラスは使用していません、と言いきれるものになるでしょうか?
26 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 11:26:13 ] 何をしたいかよくわからないんだが、とりあえず、10ってどこから出てきた数?
27 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 15:52:07 ] >>26 Component#getListeners(Class<T> listenerType)の中で使われてゐたリスナークラスの種類です。
28 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 15:59:48 ] 事実上、リスナーってインタフェースだからな。 ActionListenerとMouseListenerどっちも実装してるクラスとかあっても、 ちっとも珍しい話ではない。 getListenersで得られたアクションリスナが、 実はマウスリスナでもありました、 というのは自前でinstanceof演算子で判定するしかないのでは。 とエスパー回答。何がしたいかわからんが、java.util.EventListenerProxyも 読んどいた方がいいような。
29 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:07:29 ] >>27 あぁ、10の意味がわかった その中に Button とかでよく見る ActionListener が無いのが不思議ではなかったか? 残念ながら Component#getListeners はサブクラスでオーバーライドされている 全部の一覧を得るのは無理じゃない?
30 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:14:03 ] >>29 うーん。でもJButtonのgetListenersはオーバライドされていないんだよね…
31 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:19:48 ] JComponentのオーバーライドが効いてる JComponent以下はEventListenerListを使っててどんなリスナでも入る
32 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:24:55 ] >>31 おお、すみません。見落としてました。 対象部品のgetListeners呼んでおけば各部品の全イベントが取れそうですね。
33 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 19:52:37 ] 教えて下さい 今SourceForgeでJavaMIDIMixer作ってるモノですが MDIウィンドウを画面の下や右にピタッっと張り付ける そんな事を実現するスタンダードな手順はありますでしょうか?
34 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 22:10:19 ] >>33 MDIってことはJDesktopPaneとJInternalFrameか。 ドラッグして外周に近づいたら吸い付くってやつなら ttp://terai.xrea.jp/Swing/MagneticFrame.html こんなの?
35 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 22:50:44 ] ありがとうございます^^ これはすばらしいですね
36 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 23:51:54 ] ドッカブルでドラッガブルなGUIならDnDAPI使って自前で作ったがjava.netの何処かでみたぞ。
37 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 22:55:08 ] JScrollPaneにJTable、JTextPaneなどを追加すると、最小限(現在選択している場所)の描写しかしませんが どうやって、実装してるんですか?ヒントをください
38 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 22:57:33 ] InvalidateRectのこと?
39 名前:37 mailto:sage [2009/12/23(水) 23:05:40 ] JPanelあたりを継承して、それをJScrollPaneに追加したいな〜と思ったので
40 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 23:14:23 ] Graphics#getClipBounds
41 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 23:20:25 ] >>40 JTableのソースを読むと、そんな低レベルのメソッド使ってませんよ
42 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 23:23:44 ] そりゃ描くのはJTable自身じゃないからな BasicTableUIみてみろ
43 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 23:26:39 ] JTableのソースなんて読まなくていいの ためしに、JPanelにボタンとかリストボックス配置して、 JScrollPaneでそのJPanelかこってみなさいよ Graphics2Dとかが自動的に処理してくれるから、ボタンもちゃんと押せるし、ほかの部分の描写かからないし 画像を張りたいなら、スクロール関係なしで、グラフィックを描写するPanelを設計して、 JScrollPane -> JPanel -> Layout -> グラフィックPanelクラス の順番でつなげればいいだけ グラフィックパネルの中ではそういうの必要ですけどね、 JTableはJTableUIのソースを見る必要がありそうですね がんばってね!
44 名前:37 mailto:sage [2009/12/23(水) 23:32:06 ] >>42-43 ひとまず、調べてみる ありがとう
45 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 00:01:46 ] まてまて。ここは JViewport の setScrollMode() の賢さを讃えるところじゃないのか?
46 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 00:33:36 ] JViewPortのJDKドキュメントの「高速スクロールアルゴリズム」解説とやらに 知りたいことは全部書かれてる気もするが
47 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 13:22:51 ] セルの話かと思ったらテーブル全体の話か
48 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 13:53:54 ] D&Dで部品の配置を変えるGUIツール的なものを作りました。 自由に配置移動やボタンの追加等行って、それを保存呼び出ししたいと考えてますが、 その場合余計なことをせず、TOPのフレームをシリアライズANDデシリアライズで実現できそうでしょうか? ComponentがSerializableなので、シリアライズ保存は想定されているんですよね?
49 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 14:47:00 ] 一応想定されてるんですが、バージョン間の互換性は保証されていません XMLEncoder/XMLDecoderの方がいいかもしれません
50 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:36:00 ] 互換性って、JDKのバージョンでなく対象クラスのバージョンですかね?
51 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:00:07 ] Swing各クラスのJavadocに下記の文がいちいち書いてある > 警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。
52 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 20:16:59 ] JButtonでボタンをクリックすると、あらかじめ登録しておいた内容を実行しますが だれが、あらかじめ登録していた内容を呼び出すのですか?
53 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 20:41:17 ] >>52 どういう内容が知りたいのか図りかねるが 取り敢えずEDTと答えておこう。
54 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 20:41:56 ] >>52 JButtonの中の人 厳密にいえばAbstractButton#fireActionPerformed その呼び元はDefaultButtonModel#setPressed ButtonUIの中の人がマウスリスナかなんかを使ってマウスの動きを見てsetPressedを呼ぶ
55 名前:52 mailto:sage [2009/12/24(木) 20:46:07 ] >>53 単純に誰が呼び出しているか知りたいだけで、 とくに意味はありません thx
56 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 21:43:01 ] IDEでプロファイラ動かすと、Swingアプリの見えないとこでうごめいている 小人さんスレッドがたくさん観察できるよ ※ コンソールからスレッドダンプでもおk
57 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 01:41:34 ] イベントとかコールバックとか、 たしかに初めのうちは分かりにくい仕組みではあるよな
58 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 11:53:30 ] 各画面間の変数アクセスの最良の方法は何でしょう? 画面作成時のコンストラクタで親画面や操作したい画面を渡す? 画面をグローバル(public static)にする。 なんかstritsみたいにこれで行こうフレームワークはないですかね?
59 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:00:35 ] MVCで設計を見直せばOKでは。 ControllerにViewとModelぶらさげて、 Viewから親画面と子画面をたどり Modelから親データと子データをたどれば 画面間で変数アクセスできなくても無問題。 Webアプリとやらの「自称MVC」とはたぶん違うので注意。
60 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:27:00 ] 今のところこれで行こう的なフレームワークとかってないんですかね? もしくはそんな動向の噂とか… なるべく先をにらんだ設計にしたいもので
61 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:42:32 ] ラベル、ボタン、チェックボックスなどをD&Dして表示位置を変更したいのですが、 JRE、サーとパーティのライブラリ問わずに、適した便利なクラス(マウスリスナー?)知っていたら教えてください。
62 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 14:41:03 ] >>61 こんなん作ったけど、いまいちうまく動かん。 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(); }
63 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 17:39:53 ] アプレットでブラウザの×ボタンを押して終了したときに、そのイベントを拾うことっててきますでしょうか?
64 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 19:01:25 ] │A.. B ─┼─── .a │ .b │ Jtableの質問です 上記のような縦列表を作りたいのですがどうすれば良いのでしょうか 表の空欄には数値データを入れて計算等が出来るようにしたいと思っています
65 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 19:16:09 ] >>63 destroy()メソッドが呼ばれたときに中でメッセージを表示したりは できるけど、閉じるのを防ぐことは出来ないと思う。
66 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 10:49:36 ] >>64 new JTable(3,3)
67 名前:64 mailto:sage [2009/12/26(土) 12:04:16 ] 説明不足で申し訳ありません 列ABにString[]、行abにString[][]を使って JTable table = new JTable(String[][],String[])としたのですが、 String[][]を使ったために空セルにInt型のデータを入れられません どうすれば列AB行abを残したまま空セルに数値データを入れられるのでしょうか
68 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:08:11 ] String.valueOfで文字列化するというのは?
69 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:54:57 ] 表計算ソフトのようなテーブルを作るなら、 セルレンダラーやセルエディタを駆使しないと難しいよ。
70 名前:64 mailto:sage [2009/12/26(土) 13:33:55 ] >>68 >>69 ひとまずチャレンジしてみます ありがとうございます
71 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 14:07:03 ] さがせばスプレッドシートのライブラリあるけど?
72 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:39:08 ] JScrollPaneの中でJViewportがどの様に動いているか研究しているのですが、 スクロールバーをクリックした後に、JScrollPaneのどのメソッドが呼び出されているのかわかりません どなたか教えてください
73 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 15:56:07 ] スクロールバーをクリックすると、JScrollBarが持ってるBoundedRangeModelのsetValueが呼ばれる それによってそのBoundedRangeModelに登録されたChangeListenerが起動する BasicScrollPaneUIがここにChangeListenerを登録していて、その中でJViewport#setViewPositionを呼んで表示範囲を調節している JScrollPaneはJViewportとJScrollBarとScrollPaneUIを管理しているだけ
74 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 10:08:01 ] 一般的なダイアログみたいに右下にボタン配置したいんだけど、どういった風にレイアウト組むのが自然?
75 名前:72 mailto:sage [2009/12/29(火) 11:39:40 ] >>73 ありがとうございます
76 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 11:48:24 ] tes
77 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 16:12:26 ] BorderLayoutのPAGE_ENDに置いたBorderLayoutのLINE_ENDに置いたGridLayoutにボタンを置くのが俺流
78 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 16:35:53 ] GridBagConstraints.SOUTHEAST でええやん
79 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:03:27 ] JSliderでツマミのマウスドラッグにより変更された際、ChangeListenerのの中で ((JSlider)e.getSource()).setValue(0); とかやっても、内部的な値は0にされるのですが、ツマミの位置がドラッグされた場所になってしまい 整合性がなくなってしまいます。これを防いでツマミも0の位置に合わせるにはどうすればいいでしょうか?
80 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:08:36 ] SwingUtilities.invokeLater
81 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:09:19 ] あと、e.getSource()とかやめた方がいい
82 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 01:22:26 ] SwingUtilitiesよりEventQueueを使ったほうがいい
83 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 01:22:52 ] ありがとうございます。 >>80 なんか振動?みたいな動きをしましたが、結局何も解決しませんでした。 >>81 なんでです?調べるキーワードも分からなかったんですが
84 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 02:10:06 ] >83 たぶん振動するのは 1.スライダーが動く 2.スライダーの値が0になる 3.マウスがスライダーの上にあるのでスライダーが動く これが繰り返されてるんだと思う。 スライダーをドラッグしたときどうしたいかがよくわからない、もう少し詳しく話してほしい
85 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:06:09 ] なんでそんな不便なUIをおつくりなのか、状況が把握できていないので、確実に悪とはいえませんが、、 Swingは、スレッドセーフではないので、操作するときは、invokeLaterは、ほぼ必須です。 ちなみに、invokeLaterは、SwingUtilitiesでもEventQueueでも一緒ですね。 スライダーがかたかたいうのは、 スライダーに値をセットする前に、 マウスをはなした事にするイベントを、 擬似的に発生させれば回避できるかと思います。
86 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:07:13 ] こんな感じで、スレッドが値と表示値を破壊しないようにできます。 if (EventQueue.isDispatchThread()) { SwingUtilities.invokeAndWait(runnable); }else { SwingUtilities.invokeLater(runnable); }
87 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:09:48 ] e.getSource()は、ソースを見てもどのスライダーなのか、把握できないので、お勧めしません。 JSlider jSliderXXXXXなどと、パネル(フレームでも)のメンバー変数として、準備し、 そちらへアクセスしましょう。
88 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:14:15 ] せめて、e.getSource()の使い道はこれくらいですかね。 if(e.getSource() == jSliderValueA) { jSliderValueA.hoge(); }eles if(e.getSource() == jButtonX) { jButtonX.setXXX(); }
89 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 10:06:54 ] JSlider#getValueIsAdjusting()の説明は読んだか?
90 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 13:36:15 ] JSliderの値を反映させないようにってことなら、MouseListener.mouseReleased()でsetValueすればいいんじゃない?
91 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:13:53 ] >>87 でももし、明らかな場合はいいよね?ローカル変数にコンポーネントのインスタンス作っては 無名リスナークラスを設定しまくってるから、数十行の間に全ておさまってるんだけど・・・
92 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 20:19:26 ] コンストラクタで渡すのが理想だけど、無名クラスならこういう風にすれば? final JSlider target = slider; slider.add○○Listener(new ○○Listener(){ public void ○○(○○Event e){ target.・・・; }}); >85 SwingUtilitiesはEventQueueのカバーメソッドなのでなるべくEventQueueを使うように、とどっかに書いてあった
93 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 20:50:18 ] >>85 やっぱり不便ですね。皆さんありがとうございました。
94 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 22:43:21 ] >なるべくEventQueueを使うように これswingの実装を知ってる必要があるんじゃね?
95 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 00:13:30 ] staticメソッド呼ぶだけだって。 EventQueueのカスタム化も大した労力ではないが。
96 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 10:51:30 ] TimerQueueがpublicなら・・・
97 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 11:57:09 ] 現在JTextAreaで入力を行っていて、入力時のイベントをDocumentListenerで受け取っているんですが、 漢字などの変換決定時に同じ文字のRemoveイベントとInsertイベントが飛んできてしまいます。 例えば"ねこ"を"猫"に変換するときに INSERT ねこ [変換する] REMOVE ねこ INSERT 猫 [変換決定] REMOVE 猫 INSERT 猫 まぁ、動作としては正しいのでしょうが、こちらのプログラムの仕様上どうしても最後の重複した猫が 大きな無駄になってしまうので、なんとか変換決定イベントを知りたいのです。 もちろんRemoveイベントも受け取らなくてはならないのでRemoveを無視すれば?というわけにはいきません・・・。 キーイベントかなんかで頑張るしかないのでしょうか?(バグが出そうですが)
98 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:12:59 ] InputMethodListener使ってInputMethodEventを見張る。 イベントのgetText()やgetCommittedCharacterCount()の長さを デバッグ文で観察しつつ、いろいろなかな漢字変換操作を試してみよう。 確定した瞬間をとらえる判定式が、おのずと導けると思う。 細かいことは忘れた。
99 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:31:52 ] 普通にprocessEvent辺りだと思うんだが何でそんな面倒に考えるの?
100 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 00:43:13 ] なんかややこしそうなので妥協します・・・ ありがとうございました
101 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 02:57:20 ] 上限4文字Maxの都道府県入力フィールドで 「わかやまけん」とか読みを入力するときだけリミッターを外すとか みんなしてないのかな?
102 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 03:02:32 ] 都道府県入力フィールドに入力制限なんてつけないもの・・・ 表記ゆれが怖いからコンボボックスじゃない?普通
103 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 03:47:10 ] ある程度出来てから調整したほうがいいよ。 たぶん一から作り直しになるだろうけど、frameworkとかlibrary化するってのはそういうものだと諦めたほうがいいだろう。 その変換で無駄な感じとは思っていても、たいていは思ってたほどコストでもないからそのまま逝っちゃうってのがおおいけど。
104 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 04:24:47 ] 文字一つごとに膨大な計算をするのでフォントが複雑だと体感できるほどに遅くなることがあるんですよね。 入力中もリアルタイムで見た目を更新するので、うひゃ〜なんですけど、時間があればやります。ありがとうございました
105 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 13:20:12 ] 同じデータを用いて2つのテーブルを作りたいのですが、 1つのフレームに複数のテーブルを設置する事は出来るのでしょうか? また、フレームを2つ作った場合、片方のテーブルのデータを変更した時に もう片方のデータも同時に自動で変更するという事は出来るのでしょうか?
106 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 14:01:37 ] >105 同じデータを使ってTableModelを作ればいいだろう JTable自体は二つ、TableModelを共通のものとかにすれば自然とそうなるんじゃないか?
107 名前:ウォシュレットのアームめがけて排便する俺 ◆06NY4sFIG. mailto:sage [2010/01/04(月) 20:33:06 ] >>105 JavaAPIのJavadocからもリンク張られてるけど、 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も更新されるだろうけど。)
108 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:34:19 ] ID、パスワード用のテキストボックスがメインのログイン画面があり、 htmlみたいにデザインを変更したいとの要求が上がっています。 Swingのhtml的デザインってどこまでできるのでしょうか?
109 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 11:33:11 ] >>108 HTMLを使ったSwingコンポーネントのレイアウトは無理。 Swingの各種LayoutManagerのレイアウト機能はHTMLやCSSよりはるかに優秀。 リキッドデザインとかお手の物。CSSハックとかバカバカしくなって、戻れなくなるよ。
110 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 11:44:16 ] htmlはcellも少ないしテーブルでいいのかなって思うけど何がダメなの?
111 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 12:36:16 ] だめなとこなんかどこもないよー でもswingのhtmlがレイアウトできるのはjavax.swing.text.Viewであって swingコンポーネント(JComponent)ではないんだ レイアウト周りのAPIは結構似てるけど。
112 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 12:54:59 ] 108です。 アドバイスありがとうございます。 cgiからアプレットに移行したシステムで、cgiがログイン画面をhtmlで変更できますよ、としていたので、 そのままの要求がアプレットにも上がってきた形になってます。 イメージとしては、表示したいhtmlの内容を設定ファイルに書いておき、 それをロードして、そのレイアウトでアプレットの画面を表示することをしたいです。 つまり、アプリ改修なしで好きなタイミングで好き勝手にデザイン変更することが求められ、 htmlに慣れているので、html以外のデザイン変更方法は受け付けない、というのが要求です。 凝ったことはしない+入力部品はID、パスワードだけで、増減はなしです。 Swingに取り込むときの設計イメージがわきません。アドバイスいただければと思います。
113 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 12:56:51 ] >>112 文がおかしかったので、 cgiがログイン画面をhtmlで変更できますよ ↓ htmlでできているのでログイン画面を自由にで変更できますよ
114 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 13:07:47 ] それでいくらくれるんですか?
115 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 13:11:30 ] DQNはweb何とかだけやってればいいのかなって思うよ。やっぱり改めてそう思った。
116 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 13:14:25 ] そういえばJWebPaneってJava7に入るのかな。 >>112 もしその機能が本当に重要なのであれば、 ログイン画面はApplet化しないでウェブブラウザに任せる、つまり htmlのままおいておくべきだとおもうけど。
117 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 14:58:19 ] ↓こういう取り組みもあるけどね。 ikemen.googlepages.com/htmltablepanel でもなー、客のレベルも相当アレそうで先が思いやられるので、 難癖付けて断るのがベストだと思う。
118 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 15:33:54 ] >>117 うおおお、これはすごいですね。 イメージが付いてきました。
119 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 19:32:01 ] こういうDQNってさ、なにげなく白い奴のしゃぶりをやっちゃって、もうフィックスしちゃってんだろうなと思った。
120 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 19:39:10 ] 狂牛病に取り付かれたスポンジ脳と同じで、脳味噌スカスカって感じはするよね。
121 名前:デフォルトの名無しさん [2010/01/08(金) 19:45:08 ] うおおお、
122 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 02:01:21 ] 仕事で飯喰うなら、こんな所に丸投げするなよと思う。 そのうちhtmlをswingになんてアフォフレームワークを売り物にしてくる業者が出て来たら(ry
123 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 11:59:50 ] >>122 仕事増えるならいいじゃん。 仕事ください
124 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:52:11 ] JTextComponentのサブクラスは文字を表示することができますが、 文字列の座標情報?などはどうやって管理しているのでしょうか? JTextComponentはDocumentインターフェイスに依存しているところまではわかるのですが、 そのあとがイマイチわかりません
125 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 07:44:57 ] 何をしたいの? 解析したいだけならデバックすれば?
126 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 11:26:39 ] 座標はViewが管理してます ViewFactoryにDocumentのElementを渡して作ってもらいます
127 名前:124 mailto:sage [2010/01/13(水) 21:09:05 ] >>126 確かに、viewで管理しているみたいですね(さっき、軽く読みました) ところで、どうやって文字を表示しているんですか? java.awt.graphicsは使っていないみたいなんですが
128 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:32:08 ] なんかデジャヴが・・・ 前にJTableについて訊いてた人と一緒? まぁどっちでもいいけど JButtonとかJTableとかJTextComponentとかSwingにあらかじめ用意されてるコンポーネントはみんな、 自分では描かずにButtonUIとかTableUIとかTextUIとかに処理を委譲している だからJButtonとかJTableとかJTextComponentとかの方には表示関係のコードやマウス・キー処理のコードはない ButtonUIとかTableUIとかTextUIとかの方にはルック&フィールごとに異なったサブクラスがあって(MetalButtonUI,等)、 それらがルック&フィールごとに異なった内容を表示し、ルック&フィールごとに異なったマウス・キー処理をしている 見るならそっち側
129 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:39:38 ] >127 View#paint(Graphics g,Shape allocation)ってあるよな? ちなみにTextUIってのは単なるViewFactoryだ。
130 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:41:49 ] すまん。「BasicTextUIはTextUIを継承したViewFactory」の間違いだ。
131 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:30:28 ] >>128-129 ありがとうございます
132 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 19:29:12 ] JPanelで、paintComponent(Graphics g) をオーバーライドして描画を行う際 描画範囲がJPanelのサイズを超えた場合、自動でJPanelのサイズを拡大するには どうすればよいですか?
133 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 19:33:46 ] getPreferredSizeもオーバーライドして、描画範囲が超えないようなサイズを計算して返す
134 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 08:00:54 ] getPreferredSizeに頼るとほとんどsetSizeが無効になりますよね? setSizeでセットしたサイズ内で収まるようにするプログラムしたいときはnullレイアウトしかないのでしょうか。
135 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 08:36:51 ] getPreferredSizeがsetSizeしたものより大きな値を返さないようにするとか。
136 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 09:59:25 ] 1.誰かがgetPreferredSize()呼んできたので100x100を返した。 2.そしたら誰かが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()が呼ばれるだろう。もし希望が叶わなくてもここは絶対服従。
137 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 10:34:24 ] いや違うんです。 なんか誤解してるようですが、newしたときとかでその初期セットサイズ setSize(a,b)のまま固定しておきたくて、 基本的にサイズのは変更を許さず、resizeとかのレイアウト変更によって初期セットサイズを変更されたくないって意味です。 場合によっては縮小のときだけは許すが、拡大はmax sizeはsetSize(a,b)まで。 そういうときはnullレイアウトしかないのでしょうか。 レイアウトマネージャ使うとsetSizeの設定は実質意味をなしませんよね。
138 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 10:43:42 ] paintComponentでやるしょりか?
139 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 10:52:20 ] getPreferreSize()だろうがsetSize()だろうが実際はフレームと配下のコンポーネントのバランスをLMが勝手にとるから AWTならnullレイアウトでいいけどSwingだと修飾がJava2Dだからなぁ。 ゲームだとGUI自前だしCanvasのサイズを強制したいからnullレイアウト使うがね。
140 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 11:04:06 ] >>138 あまり分かってないようだけど、setSizeの質問ではswingはまったく関係ないよ。
141 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 18:29:29 ] >>140 描画中にリサイズしたらイベントキューが理論的に順番めちゃくちゃにならない?
142 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 19:04:26 ] JComponentのpaint(Graphics g)とprint(Graphics g)ってどう違うの?
143 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 21:02:39 ] printって印刷だぜ?
144 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 23:15:21 ] JTabbedPaneにadd("タイトル", JTableのインスタンス)を5回しています JTableの列幅に変更があった場合、addした5つ全ての列幅を変更したいと考えています どのように、すればよいのでしょうか?
145 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 11:01:06 ] 幅だけじゃなくて列の属性が全部同じなら、全部のJTableで1個のTableColumnModelを共有する
146 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 20:47:58 ] >>145 thx
147 名前:デフォルトの名無しさん [2010/01/27(水) 06:05:30 ] Swingでゲームを作る人がいないのはなぜですか?
148 名前:デフォルトの名無しさん [2010/01/27(水) 06:12:28 ] ゲームを作るのに便利なライブラリ (画像効果など) とか手厚く用意されてるわけじゃないから。
149 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 16:49:41 ] fillRectで塗った色はprintComponentで再描写しても消えないの?
150 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 01:27:41 ] コンポーネントの描画に関して、何か誤解をしているように見える。
151 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:22:26 ] NetBeansみたいなフォームデザイナってビジネスで使えるの? IDEのバージョンアップでデザイナそのものが使えなくなるかもとか考えると怖い。
152 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 12:14:53 ] GridBagLayout手書きしか使わんなー。 もちろん直接じゃなくて、ビルダークラス挟むけど。 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(); みたいな感じで。
153 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 20:46:47 ] 手書きなの? 1.6からだけど、手書きならgroup layoutとかいいよ。 grid bagのさらにパワーアップしたレイアウトだからそのブルダークラスとやらと同じ感じで設定できるだろう。
154 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:51:42 ] JOptionPane の「OK」「キャンセル」みたいなデフォルトのラベルリソースってどこかから取れない? JOptionPane でキャンセルボタンにデフォルトのフォーカスを置きたいのでユーティリティメソッド 使わないで書いていったんだけど、ボタン名を自分で指定しなきゃいけないのかな。
155 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 00:26:41 ] うちMacなんでAqua LaFのしか見当たらないんだけど、 com/apple/laf/resources/aqua.properties (他数言語)に OptionPane.yesButtonText=Yes OptionPane.okButtonText=OK などと書いてあるなあ。
156 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 00:32:52 ] javax.swing.UIManager.getString(キー) で取れそう。 ところで、 ttp://sites.google.com/site/shin1ogawa/java/swing/joptionpane-default-focus なんて見つけた。
157 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 01:28:10 ] >>154 "OptionPane.yesButtonText" "OptionPane.noButtonText" "OptionPane.cancelButtonText" "OptionPane.okButtonText" これらをキーにして UIManager.getString(String) を使う。 ロケールも指定すれば、各国語にローカライズされたテキストも取れる。 UIManager.getString("OptionPane.cancelButtonText", Locale.ENGLISH) は "Cancel" を返す。
158 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:03:35 ] JPopupMenuにたくさんのメニュー項目を入れると、メニュー項目が画面の縦幅に入りきらなくなります。 自動的に上下にスクロールとか、2列にするとかの仕組みはありませんでしょうか。
159 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:51:22 ] >>158 こんなの見つけた。動作は見てない。 www.beginner-java-tutorial.com/scrollable-jpopupmenu.html
160 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:17:17 ] マカってホント情報弱者だな。
161 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:41:54 ] >>160 どこの誤爆?
162 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:34:50 ] >>155-157 ありがそうございます ^^
163 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:38:02 ] AWTUtilities#setWindowOpacity() で透明度を設定すると、3回に1回くらい一瞬だけ真っ黒になるのだけれど、これはグラフィック性能がクソだからなのでしょうか?
164 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:16:28 ] >>161 たぶん、PCニュース板あたりじゃない? あそこではMacを、>>160 みたいに馬鹿にしているし
165 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 00:32:54 ] XP しか使ってないんだけど Windows Look and Feel って Vista や 7 だと違うの?
166 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 14:26:22 ] マカってホントに情報弱者だな。
167 名前:デフォルトの名無しさん [2010/02/10(水) 10:32:30 ] JTableでセルごとに色を変えたいのですが、 どのように処理すればいいのでしょうか? 行ごと、列ごとは出来ましたが、 各セルごとができません。 ご存知の方がおられましたら、 ご教示していただけませんでしょうか?
168 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 10:43:53 ] CellRendererじゃねーの?
169 名前:デフォルトの名無しさん [2010/02/10(水) 10:45:50 ] もっとちゃんとご教示していただけませんでしょうか?
170 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:05:04 ] 釣りか
171 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:09:54 ] 分からないなら答えなくても結構ですよ
172 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:13:00 ] java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer ColorRenderer というクラスがあるから見てみ。
173 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:36:45 ] DefaultTableCellRenderer のサブクラスを作り、getTableCellRenderComponent() (だったかな?) を オーバーライドし、スーパークラスの同名メソッドを読んだあと this めんどくせ
174 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:07:42 ] C#にするからもういいや
175 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 15:46:45 ] >>170 このスレ、質問者になりすまして回答してる人がいるね。
176 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 15:51:16 ] この板ではよくあること
177 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:46:58 ] というか最近さらに増えた。 ニートが増えたんだろうな
178 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:55:21 ] 今日はニートの日だったな。
179 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:27:48 ] 卒論提出前の学部生だと予想。
180 名前:デフォルトの名無しさん [2010/02/11(木) 09:43:02 ] GUI部分をnetbeansのGUIエディタで作成して,それ以外はjrubyで作る みたいなことを簡単にできる方法ってありますか?
181 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 09:46:28 ] イベントリスナで jruby 呼べば良いだけじゃん。 そういうフレームワークちょいちょいと作れば?
182 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:21:03 ] SwingのEDTでスクリプトの実行って実行モデル的にどうなの? リスナ上でやるには十分遅い処理じゃね?
183 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:52:10 ] そんな重い処理ならスクリプトなんか使うなよ。
184 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 03:11:41 ] ruby廚は巣に帰れよ。 pc12.2ch.net/test/read.cgi/tech/1264635554/ Ruby 初心者スレッド Part 34 pc12.2ch.net/test/read.cgi/tech/1265467681/ Rubyについて Part 39 pc12.2ch.net/test/read.cgi/tech/1200175247/ Rubyの宿題教えてください。2限目 pc12.2ch.net/test/read.cgi/tech/1233033091/ 愛国Ruby pc12.2ch.net/test/read.cgi/tech/1201603546/ 魁け! Ruby 1.9.X pc12.2ch.net/test/read.cgi/tech/1249737531/ Rubyについて(アンチ専用) Part004 pc12.2ch.net/test/read.cgi/tech/1155031689/ 【ActiveScript】RubyをWindowsで使うスレ【GUI】 pc12.2ch.net/test/read.cgi/tech/1170047838/ Ruby最高や! pc12.2ch.net/test/read.cgi/tech/1100563765/ Jython、Groovy、JRuby - どれが一番効率的?
185 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 12:58:02 ] で、おまいら GUI コンポーネント組み立てて行く時は上位の JPanel あたりから組み立てる派か 末端の JButton, JTextField あたりから組み立てる派かどっちよ?
186 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 15:03:13 ] iTextの質問ってここでよい?
187 名前:デフォルトの名無しさん [2010/02/20(土) 11:12:02 ] iTextの質問ってここでよい? age
188 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 11:38:01 ] 質問うp
189 名前:デフォルトの名無しさん [2010/02/20(土) 21:18:02 ] Swing アプリ使ってるとたまに再描画がクソ重くなるんで調べてたら、ときどき javax.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
190 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 22:53:51 ] SwingかJava2Dの使い方間違えてるかVRAMのデータが使えない状態にあるんだろう。 とりあえずjavaのオプションからDirectXとOpenGLのバージョンとソースすべてうp。
191 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 23:46:18 ] >>190 問題のアプリは主に jEdit (www.jedit.org ) です。 V2C でも似たような問題があるようですが、実行中に問題が発生するというわけじゃなさそうです。 v2c.s50.xrea.com/manual/win.html#problem DirectX のバージョンは 9.0c です。 javaw.exe 起動時に -Dsun.java2d.opengl=true すればこの問題は起こらないんですが、 ときどき他のウィンドウと干渉してゴミが表示されたりします。これを回避するために できれば OpenGL は使わないで済ませたいのですが、方法が見つからない状態です。
192 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:30:51 ] ソフト使うだけは板違い。
193 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:16:58 ] >>189 これ? bugs.sun.com/bugdatabase/view_bug.do?bug_id=6921654 取り敢えず他のオプションも試してみれば。 www.ea.u-tokai.ac.jp/~sakata/jdk6/docs/ja/technotes/guides/2d/flags.html OpenGLはOpenGLで問題あるみたいだけど。 bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723523 とか。 何にしてもスレ違いですね。
194 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 00:20:02 ] >>193 ありがとうございます。 リンクしていただいたバグは VRAM 上のイメージとメインメモリ上のイメージとで 動作が異なると言うことで、速度低下だけが問題になっている >189 の問題とは違うもの みたいです。 translaccel と ddforcevram がそれっぽいなぁと思って試してみたんですが、やっぱり しばらく使ってると問題が発生してしまいました。 ソースコードに問題があるのなら修正に挑戦する気はあるのですが、再現させる手段が さっぱりなのでどこに手を付けていいものかさっぱりな状態です。 他に同じ症状の情報が見当たらないので、やっぱり環境に大きく依存する問題なのかも しれません。
195 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:33:28 ] beansbinding\u306eObservableListImpl.fireElementChanged(int) ってどこからも呼ばれないの?
196 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:35:00 ] 修正 beansbinding の org.jdesktop.observablecollections.ObservableCollections.ObservableListImpl.fireElementChanged(int)
197 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 20:15:56 ] PCの構成とドライバのバージョンうp
198 名前:デフォルトの名無しさん [2010/02/28(日) 04:50:07 ] まじでおまえらSwingで何つくってんだ? ゲームのマップエディタ適当にSwingで適当につくろうとして久々触ったけど 相変わらず糞だなぁ、、いつまともになるんだろこれ。。
199 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 06:00:24 ] どこが糞なのか何がまともなのか理想を語りたいらしい。
200 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 06:27:00 ] こんな夜中に語りだすのか?…
201 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 09:15:14 ] 糞なら使うなよ 適正な言語も選べないのか
202 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 21:58:51 ] マップエディタの実装が糞なだけでswing関係なかったりしてw cとかで組めるならjni使えばいい話し出し。
203 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 22:43:23 ] ここでjni出してくるのはどうかと思う
204 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 02:33:21 ] javaからwin32apiは使えないからな。
205 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 03:32:54 ] つかえまsが
206 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 04:57:50 ] Swing に対する唯一の不満は、Win32 用の L&F が ネイティブのそれと微妙に違っててイラっとすることくらいなんだけど 操作感覚にダイレクトに突き刺さってくるので困る。 SWT の作りは大嫌いだし(いまどきイベントループとか) 全般的な命名も好きになれないし(Shell って名前をアレに使うなよ) 体感速度に差があるとも思えないんだけど、 この部分だけが引っかかってしまう。 自分で作るんなら Swing なんだが 使うんだったら SWT みたいな。
207 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:35:13 ] そういうヲレクラス作ればいいだけじゃ?
208 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 13:39:34 ] J/DirectなんてJ#にすら見捨てられたよな
209 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 14:01:08 ] Browser と半透明ウィンドウのためだけに SWT 使うとる。
210 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:19:17 ] AWTUtilだっけ?あれとJDICでよくね?
211 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:08:39 ] JWebPaneってどうなったん? WebKitつかってるとかいう
212 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 02:13:19 ] SwingWTという、SWTをSwing APIでラップしたものがある。 swingwt.sourceforge.net/ 2005年頃に使ったときは、微妙な互換性不足が残念だった覚えがあるが、 今ならよくなってるかもしれない。試してみたら?
213 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 17:08:54 ] >>206 いまどきイベントループ、って どんな言語でもイベントループなんじゃないの?
214 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:11:48 ] たしかにイベントループを表に出していない Swing の方が異端だな。
215 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 09:11:25 ] どうもイベント廻りの挙動がおかしいと調べてみたら呼び出し先のライブラリで イベントループしてました、なんて事にさっきまでハマってたところ。 元々イベントループなんざシングルタスク言語やノンプリエンプティブな環境向けの手法だお。 Java のようなマルチスレッド環境では使わないに越したことはない。green thread 時代に yield() 駆使してた悪夢がよみがえる。
216 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 21:58:42 ] 最近、日曜プログラムでSwing始めました。 仕事ではCOBOLとかC言語が多かったのでJavaはかじった程度の知識しかありません。 ところで、コンポーネントのリスナークラスとか追加するときって、無名クラス使うのが 一般的なんですか?(本とか読むとそれが多いと書いてあったので) 個人的には画面系のプログラムも作ったこともなかったので、よく分からないんですが、 コンポーネントの生成や属性の設定の中に、ロジックが入ってくる様に思えて なんか違和感を感じるんで、今は無意味でもクラスに名前を書いて内部クラスにしてます。 でも、無名内部クラスにするが一般的なら、それになれとかないとなぁと思い質問しました。
217 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:03:15 ] 画面系を作ったこともないんですよね? どういう違和感を感じるんですか。
218 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:07:05 ] >>216 アプリケーションと画面を同一クラスとして作っていると そんな感じになってしまうかもしれない。
219 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:13:36 ] >>217 ちゃんと勉強するとなるとかなり大変なんで初心者・初級者用のgui教本は全てそんなもんですよ。 分離しようとすると結局コード量が多くなるんでもしちゃんとguiやるならIDEないと無理でしょうね。
220 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:14:45 ] >>216 ね。
221 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:40:14 ] >>216 分かりやすい・自然だと思う方を採用したらいいんじゃないでしょうか。 無名クラスの場合は引数以外に定義された環境の情報にアクセスできるメリットと、 切り分けても命名に困る(〜ボタン押したときの処理、以上の名前が思いつかない) ことが多数なので、私自身は無名クラスで書くことが多いです。 良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
222 名前:デフォルトの名無しさん [2010/03/07(日) 00:10:01 ] javaのjTextAreaから日本語文字を[ctrl+c]でコピーして テラパッドなどのテキストエディタに[ctrl+v]でペーストした時に 日本語が文字化けしてしまいます。防ぐ方法はありますか。 【Java】 1.6.0_17-b04 (Sun Microsystems Inc.) 【OS】 Windows XP 5.1 (x86)
223 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:00:27 ] pc12.2ch.net/test/read.cgi/tech/1236529563/ 文字コード総合スレ part5 pc12.2ch.net/test/read.cgi/tech/1153008301/ こんなエディタ・統合開発環境はいやだ 2種類目
224 名前:222 [2010/03/07(日) 01:10:43 ] >>223 はは、文字コードスレにいってみます。
225 名前:216 mailto:sage [2010/03/07(日) 03:16:14 ] >>217 、218、219、221 コメント有難うございます。 コンポーネントを作る際、例えば以下の様なものがあるとするじゃないですか。 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」はリスナーを追加する行為は画面の見栄え リスナークラス内は「ロジック」になって、画面定義とロジックが混ざる感覚になる。 「リスナーを有名の他クラスにして、外に飛ばしてやれば、それが除外されるので画面定義だけの部分になってくれる。」 ので、しっくり感が出てます。 (なんか説明、へただなぁ…。)
226 名前:216 mailto:sage [2010/03/07(日) 03:44:09 ] >>221 221さんが行っているメリットは、無名クラスではなく、内部クラスのメリットだと思います。 一応、外だしの有名クラスにするときも、元のクラスの内部クラスにはして、フィールドとか までは、利用してます。 結局、無名クラスの場合のメリットとしては 「べつにクラス化しても、結局一ヶ所しかから呼ばれないから意味ない」 「そんなクラスにわざわざ名前つけるのもバカらしい」 「コード見るときに、あっち行ったりこっち行ったりするのも分かりにくい」 のでまとめて書く。ってことかなと思ってます。 (無名クラスの場合のメリットというよりか、外だしにしたクラスのデメリットですが…) >良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。 命名規則を何となく決めて置けば、まぁ、なんとかしのげます。 MyBtnS11ActionAdapter 見たいなこのボタンのこのリスナーってなクラス名にしてます。 (よい名前かは置いといて…、ってか、BtnS11って、命名なんやねんってツッコミ入りそうですけど)
227 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 03:53:58 ] 先ずはguiアプリを実際に作ってから半年後にまた考えてみても遅くないでしょうね。
228 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:42:33 ] >>216 ビジネスロジックは別クラスに実装して、 無名リスナーは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コンテナだが、不慣れなら他の方法でもいい。
229 名前:228 mailto:sage [2010/03/07(日) 08:44:34 ] ぐあぁコード間違えた。こうだ。 JButton b1 = new JButton("OK"): b1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ getSomeLogic().doLogic(); } });
230 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:49:11 ] >無名クラスではなく、内部クラスのメリットだと思います。 書いててそう思ったんですが、まあ多分通じると思ってそのままに・・ コンポーネント名+イベント名 な命名しか思いつかない場合、 自分だったら無名内部クラスで片付けてますね。 でもまあその辺りは個人の感覚次第で 何が正しいってわけでもないはず。 (特この件にかんしては明確にどっちが優劣ってのはない。) 「そういう書き方もある」ことを抑えてて、 そういうコード見て面食らう事がないのであれば 別にどっちで書いてもいいと思うんですよ。 vi も Emacs も優れたエディタなんです。
231 名前:216 mailto:sage [2010/03/07(日) 18:05:59 ] あぁぁぁぁ。(なんか自分に腹立ってます) >>230 自分が無知なので広く意見を伺いたく質問したつもりなのに 変な噛みつき方してすみませんでした。 コメント有難うございました。
232 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 20:35:15 ] >>226 >良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。 は、名前が思いつくようなクラスは再利用性があるクラスだから、 「名前が思いつくかどうか」自体が、内部クラスにするかどうかの そこそこ良い基準になるということを言ったんだと思った。 ちょっと思っただけ。
233 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 21:44:27 ] やってれば分かるが普通は>>228 にいきつく。今のswingはここらで止まってる。
234 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:32:25 ] >>233 >>228 でもいいんだけど、コンポーネントに直接ActionListenerをaddするんじゃなくて、 Action作って使いまわしたほうがマシだと思う。 ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。
235 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:48:19 ] サーバサイドしかやったことないと思しき某外資系ITゼネコンのアフォSEが JAR ファイルの中見て無名内部クラス使いすぎ云々 (品質悪い) と因縁 付けて来た事があったなー。
236 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:52:36 ] サーバーサイドやっているとね
237 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:04:28 ] そんなゼネコンと仕事してる時点で質が低いからどうでもいいな。 金が欲しいなら言う事聞くしかないだろ?
238 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:10:36 ] 自分ところが下請けだから下請け前提で読んじゃったんだね君。
239 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:57:47 ] > ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。 さすがにそのくらいはやってんじゃなかろうか。 同じことを何度も書くのはそもそもアレだし。
240 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:05:42 ] ダイアログ表示中に任意のキー押下で任意のアクションを呼び出す方法はあるでしょうか?
241 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:43:51 ] もしかしてモーダルなダイアログの話?
242 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:46:22 ] >>241 そうです。 エラーが発生してダイアログを出すときに、スタック情報を適当なpublic static にコピーしておいて、 ダイアログ表示中に隠し機能としてF5を押すと、 コピーしておいたスタック情報をクリップボードに張り付けるということがしたいです。 客から問い合わせがあったときに、簡単に対応したいので。
243 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:11:22 ] InputMapとActionMap使ったら簡単なんじゃない? JDialog 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);
244 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:35:53 ] >>243 ありがとうございます。 JOptionPane.getRootFrame()から何とかしてアクションマップを登録して、 JOptionPane.showMessageDialog(…);することはできないでしょうか?
245 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:39:58 ] JOptionPane の API リファレンスにユーティリティメソッド使わないで JDialog 参照する方法が載ってるだろう。
246 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:44:20 ] >>245 JOptionPane.getRootFrame()から何とかして、って書いてあるから答えがかみ合ってないよ。 そんなことは知ってるけどもっと簡単な方法がないかってことだろ。 XXして JOptionPane.getRootFrame() で済む方法ってことでしょう。 要はその方法はないってのが正しい返しかな。
247 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:55:30 ] 超絶役に立たないレスだな。 だから JDialog 参照しろという話をしてるわけだが。
248 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 09:06:33 ] 強引なやり方としては Toolkitを使って全てのイベントを監視する方法もある。 どのコンポーネントがフォーカスを持っていようと F5が押されたらスタックトレースをダンプするようにもできると思う。
249 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 11:01:19 ] Swingの画面を印刷するにはどうすればよいでしょうか? ちなみに、スクロールで見えてない部分も含め印刷させることが出来るでしょうか? WORDの差し込み印刷をSwingでやることになりまして…
250 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:18:00 ] 取ってもアフォな案件だなw vbaをjavaから呼ぶcom作る輪
251 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 14:29:22 ] 俺vba苦手だから Apache POI に頼るー。 Apache POI だけはいつも俺の心のアニキ。
252 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 16:34:54 ] XML で保存出来るのに今時 POI とかないわ。
253 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:17:17 ] JEditorPane#getPrintableでRTF文書の印刷とか考えてるならやめとけー。 まずは簡単なWORD文書をディスプレイに描画させてみて、満足いく結果が得られるのか早期に検討すべし。 たぶん Aspose.Words for Java みたいな有料ライブラリが必要になるだろうよ。 >252 XMLなんか差し込み印刷したってしょうがないだろ
254 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:25:41 ] >>253 Word XML (WordML) 形式の話をしてるんだが、まだ Office が XML で連携できてるって 気付いてない奴って多いんだよな。おまえみたいな。
255 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:43:50 ] DB 舐めて Word ファイル作るだけにバカみたいな金払わされてる客がいたんで (レイアウト変更等別料金)、検索結果の XML から XSL で Word ファイル作る ツール作って XSL の書き方だけ教えてあげたらもの凄く喜ばれた。 んで別のデカい仕事貰った。
256 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:53:46 ] >254 「Word XML (WordML) 形式の話をしてる」 「WORDの差し込み印刷をSwingでやる」の話じゃなかったんならオレが謝る。
257 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:54:12 ] もしプロなら人の仕事を奪うのは良くないなと気づかないといけない
258 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:57:02 ] >>256 Swing から Word XML 出力 & Desktop#print() が思い付かない時点でオhル
259 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:08:24 ] >258 重ね重ね申し訳ない。 「Swingの画面を印刷するにはどうすればよい」の話じゃなかったんならオレが謝る。 「スクロールで見えてない部分も含め印刷させる」の話じゃなかったんならオレが謝る。 「Word XML 出力 & Desktop#print()」がSwingなのかスレ違いなのかはオレもよくしらん。
260 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:12:01 ] バカは黙ってろよ
261 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:18:44 ] 逝ってよし
262 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:19:39 ] ところで >249 氏はもしかするとWindowsユーザーなのだろうか
263 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:32:57 ] Wordは最初っからどうでもいいんですが、 結局Swingの画面をjavaのコードだけで印刷って出来ないんですか? デスクトップの機能を使ってなんとかできないですかね… Wordの差し込み印刷はバージョンによって動作が違うし、Linuxじゃ動かないのでパスしたいんです。
264 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:50:51 ] 与えられた紙の隅から隅まで自分でお絵かきしたいなら「Java 2D API プログラマーズガイド」の7章を読む 既成コンポーネントやコンテナのprint()がどこまでまじめに印刷に対応してるかはレッツトライ スクリーンキャプチャがしたいならjava.awt.Robotだ。
265 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:13:33 ] awtでボタンを押すとFileDialogをsetVisible(true);するメソッドを呼び出すだけの アプレットを作りました。 これをブラウザ(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のバグなのかな? それとも何かしなきゃいけないことがあるのかな! 助けてエスパー!
266 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:19:15 ] AWT のスッピン FileDialog なんて久しく使ってないから忘れた。
267 名前:265 mailto:sage [2010/03/11(木) 22:24:17 ] ですよねー ふるーいアプレットのシステムを ポーティングするお仕事でこの問題が見つかったのですが 事象の起こし方もすごい簡単なのに 調べても調べてもちっとも出てこないので 泣きそうです HTMLから呼び出すとモリモリなんだけど アプレットビューワーから呼び出すと起きないのですよ
268 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:35:44 ] "java.lang.…pData" でまんまググったら出たがこれじゃねーのか。 bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829326
269 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:38:29 ] 中身読んだら Java 7 でリサイズした時の話だった。失礼。
270 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 09:19:25 ] >>265 を読んだ限りでは、どうもJRE自体のバグっぽいね。 あるいはブラウザとの相性が悪かったか。 実害がないなら放置していいんじゃないかな。
271 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:25:24 ] Swing→RMIの通信をSwing→httpに変更しようと思っています。 RMIはもう使用したくないとのこどで、大幅改修はせずに移行したいとのことです。 まぁ、その辺は言いたいことはあるんですが、この不景気なもので来るもの拒まずです。工数が増える分には。 そこでまずRMIのインターフェースはあまり変えないということで、 メソッド呼び出しのリモートプロシージャの考え方を踏襲することに。 Swingにhttpクライアントを入れて"multipart/form-data"でデータを送信します。 データはRMIで使用した全ての引数でシリアライズした中身をファイルアップロードで送ります。 ポップ引数は2つで、リモートクラス名とメソッド名。シリアライズを解凍して(引数の配列)、 リモート側で(httpサーバ)メソッドインボークする感じです。 レスポンスは"text/plain"で、RMIの戻り値のシリアライズです。 このやり方はいかがなものでしょうか? 改善案や便利な方法があればお願いします。 落とし穴などもあれば。 Swing→httpは外せないってところでお願いしますm(__)m
272 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:32:33 ] RMI-HTTP Tunneling というものがあってだな。 使ったことないけど。
273 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:04:30 ] >>272 なんすかそれ
274 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:30:26 ] 中身はrmiのままなんだから、http通しても大差ないのにね。 まあ金貰えるなら言う通りに実装してやればおk。
275 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:42:23 ] 単に HTTP にすりゃ良いってだけなら (ファイアウォールでも通すのか?) SOAP に置き換えりゃ良いんじゃねぇの。
276 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:43:15 ] >>271 RMIとHTTPってレイヤが違うような…?
277 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:02:48 ] RMIがいやだからHTTPにしたいって言うのが理解できないんだがまあそんなことはどうでもいい。 Swing関係なくね?
278 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:04:22 ] RMI か HTTP かで心が Swing してんだろ。
279 名前:265 mailto:sage [2010/03/13(土) 01:43:58 ] >>268-270 気にかけていただいてありがとうございます 例外の内容で調べて同じのは出てこなかったけど 「Defaultmodel.なdialogが云々でバグです!」 といったような内容のがBugDataBaseでボロボロ出てくるので 指定しなくてもモーダルだと主張しているFileDialogの フォーカスの処理とブラウザから呼び出した際の相性に問題があるんだと思います。 (自分でmodalを指定するDialogだと同じ操作をしてもこの問題は起きません) お客さんには事例を寄せ集めて 「我々のせいじゃないし、どうにもできないので勘弁していただきたい!」 と主張してみることにします。 ありがとうございました。
280 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:32:08 ] 他所に仕事取られる訳だな。物はいい用と思うけどね。せっかくのビジネスチャンスを(ry
281 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 10:33:40 ] >>279 は月曜日にクソッタレのフニャチンどもにこう言われるはずさ そんな欠陥のある言語を選択したのはお前の会社のミスだろ? それにJavaはオープンソースなんだろ? 中追ってお前のところで直せよ そしたら>>279 はExceptionを握りつぶしてこう言ってやるのさ 問題ありませんってね HAHAHA
282 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 10:39:45 ] おまえは書き込む前に一息置いて読み直す癖を付けろ。
283 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:08:29 ] バグ混入させるぐらいなら、プログラマ辞めればいいのに。 明らかに向いてないというか、能力足りてないだろう。
284 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:40:43 ] 翻訳:極論振りかざすオレカコイイ!
285 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:22:24 ] バグが混入しないと思ってる時点であほだな
286 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 04:20:28 ] 優秀なプログラマほどバグが少ない現実。 馬鹿にはプログラミングは向いてないよ。
287 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:29:51 ] そう自分を責めるな
288 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 07:44:34 ] たとえ4秒に1回落ちてもフロントエンドに影響が無いように作れってぐぐるの中の人が言ってた!!(違
289 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:22:12 ] >>286 いくら優秀でもバグがゼロにはならない。 >>283 に従うと、バグを混入させるプログラマは辞めなければならない。 したがって、最終的には全てのプログラマは辞めなければならない。
290 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:49:36 ] >>283 はエンドユーザーだろ
291 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:37:43 ] ユーザとして使ってるとバグが出るのってホント頭に来るのは事実。 作った香具師出てこいよ。
292 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:05:30 ] >>291 マ板へどうぞ。
293 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 20:53:14 ] やだよ。 あいつら池袋のヤベェ工房から買ったヤニでトんでんだもん。 どうでもいいけど、池袋に溜まってる工房ってだいたい病気持ってるよなw まじ怖いわw 街中で堂々とコンジローマ自慢してんじゃねえよwくせえw
294 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:17:56 ] いやだから池袋のヤベェ工房から買ったヤニでトんでる香具師が作ってんだって。
295 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:28:45 ] でも池袋のガキどもは、本当にヤバい事する時は隠れてやるんじゃね? そういう現場を生で見たことないし。 だからまだいい方。 三軒茶屋あたりでうろついてるのは、本当にどうにかしてほしい。 あそこは深夜になるとリアル北斗。
296 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:34:13 ] >>295 マ板でどうぞ。
297 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 11:10:39 ] >>294 いまどき香具師って……
298 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 12:11:20 ] >>297 たまに使っている人いるよな 死語だけど
299 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 12:15:45 ] >>298 元ネタがネットじゃなくて小説だからかな
300 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:38:53 ] 池袋といったらダラーズだよな
301 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:45:23 ] デュラララカ
302 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 04:54:29 ] あらららぎさん
303 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 09:47:31 ] Swingで、ドラッグ中のキー入力を取得するにはどうしたらいいでしょうか。 JDesktopPaneを使っていて、JInternalFrame間のDnD中に、アクティブなフレームを 切り替えたいと思っています。 Windowsプラットフォームだと、CTRL-F6で内部フレームが切り替わりますが、 ドラッグ中だと切り替わりません。
304 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 10:40:52 ] >>303 まずそのUI設計をやめたら?
305 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 14:31:09 ] DnD中にアクティブなウィンドウを切り替える意味は何?
306 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 14:36:29 ] 下にあるフレームを上に持って来たいんだろ。
307 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 18:15:39 ] マウスリリースされたときにlafが勝手にやってくれる動作じゃダメなのか
308 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 19:00:18 ] >>303 ExplorerやNautilusのように、ウインドウ内のドロップ対象で動作が変わるのですが、 そのような作りは一般的ではないのでしょうか。 ドロップ元とドロップ先が完全に見える状態にウインドウを並べてドラッグ&ドロップするのでしょうか。 それとも、CLIしか使わないのでわからない、ということでしょうか。 >>305 Windows Explorerでファイルドラッグ開始 →ALT+TABでドラッグ対象ウインドウの非表示部を表に出す →隠れていた部分のアイコンにドロップ みたいなことです。 >>307 ドロップされる位置によって動作が変わります。
309 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 21:13:11 ] つ nlink
310 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 22:59:06 ] Macでもドラッグ中にExposeとかSpacesを使えるけど あれと似たような感じなのかな。
311 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:14:11 ] マカって情報弱者だな。
312 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:17:43 ] おまえってボットなの?
313 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:40:02 ] 九分九厘そうだろう。
314 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:44:35 ] Mac 使ってるけど これで来るわけ? ↓
315 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 01:14:11 ] マカって情報弱者だな。
316 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 01:24:17 ] goto 311;
317 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 01:27:56 ] きっちり一時間で巡回してんのかw
318 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 02:14:30 ] 呪文を唱えるとボットが召喚できると聞いてry マックって旨いよな!
319 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 03:14:11 ] マカって情報弱者だな。
320 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 09:05:11 ] >>319 分秒合わせてくるとか、何コレコワイwwwww
321 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 11:45:52 ] こいつ自作板にも出るし何年も前からpc11鯖に寄生してるボットだろ
322 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 14:50:56 ] eclipseのプラグインで使いやすいお勧めのSwingサポートプラグインはVisual Swing for Eclipseになるでしょうか?
323 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 11:27:37 ] Swing Application Frameworkってどう思います?
324 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 11:34:09 ] ok
325 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 11:44:49 ] >>323 フレームワークというかライブラリ?
326 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 11:51:42 ] >>322 Visual Swing for Eclipse かな
327 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 13:25:28 ] いや Visual Swing for Eclipse でしょ。
328 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:03:10 ] JDK1.5で画面をデフォルトプリンタで印刷したいんですけど、print()の引数のGraphicsってどうやって取得すればいいのでしょうか? というか、swingの印刷のサイトがなさ過ぎ… あまりやんないんですかね
329 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:45:01 ] >>323 netbeans platformでおk まあこっちはミドルウェアに近いが。 たとえばなんだろうか、専ブラの類の規模を作ろうとするとApp Frameworkでは物足りない。 もとからSwing初学者がjavaの流儀でGUI作るのを容易にする目的のものだからね。 それがJava 5のEoDの一環でJDKに含まれるようになるだけだから。 #俺はTiming Framework入れて欲しい。Swing Labsの成果はもっと取り込んでいいと思う。
330 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 18:46:04 ] swingにフレームワークはいらんだろう
331 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 18:49:37 ] Swing 自体がフレームワークじゃねぇの。 あと自分とこの要件向けにドメインフレームワーク作るだけだろ。
332 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 18:52:46 ] >>331 ドメインフレームワーク?
333 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:52:33 ] SwingはToolKit
334 名前:デフォルトの名無しさん [2010/03/26(金) 00:41:08 ] ホント、マジで教えて欲しいんだが、 おまいらSwingで何つくってんだ? ゲームのマップエディタつくったんだが、遅くて、見た目もイビツで 恥ずかしくて公開できやしない。
335 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 01:00:44 ] >>334 それ Swing のせいなの?
336 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 02:24:50 ] センスが無いと何やっても駄目な典型。
337 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 04:36:59 ] 速い言語で作ったら今度は Segmentation Violation が出まくりの糞言語とか言ってそう。
338 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:27:46 ] テキストボックス入力中に、ボックス直下に入力でマッチした候補をインクリメンタルで表示する部品はあるでしょうか? googleの入力補てんみたいなものです。 自作の必要あり?
339 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:45:21 ] >>338 標準にはない。 原理的にはコンボボックスのエディターが持っているテキストが変更 されるたびに、その時点のテキストに応じてモデルが返す候補一覧を 変化させればよい。 例(ソース付き): terai.xrea.jp/Swing/ComboBoxSuggestion.html
340 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 13:24:56 ] >>334 Swing以外で、サクサクで見た目も良いツールつくれるなら、そっち使えば良い。 無能ほど他人のせいにしたがる。 しかも無能は自分の無能さに気づく能力も無い。
341 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 22:37:45 ] >>334 オープンソースにして公開すれば、 誰かが高速描画仕様に修正してくれるんじゃないかな。 ここには有能な人も多いみたいだし。 俺は嫌だけどね。
342 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 04:10:43 ] 価値有るものじゃないと弄る気にも成らないけどな。 金払ってプログラマに拘束化してもらうのが確実。
343 名前:デフォルトの名無しさん [2010/03/27(土) 07:36:53 ] 他人を無能呼ばわりする奴が、 どの程度描画を高速化できるのか興味あるね。 さぞかし有能なコードを書いてくれるんだろうよ。 まずはソースをうぷだ。
344 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:19:03 ] 俺は、この前このスレじゃないがソースうpしたけど、 ソースについて何の評価も貰えなかった・・・ そんな俺は腐ったミカンですか?
345 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:21:54 ] 2ch ではマジレス・ソースうpするとまともにコメントつかないのが常識
346 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:27:07 ] ヒットアンドアウェーの チンカス ばっかだしな。
347 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 10:29:57 ] ソースをうぷったのにコメントを戴くことができなかった7つの理由 1.閲覧者のレベルが低かった 2.閲覧者の得意分野が違っていた(学校、仕事、趣味、ゲームetc.) 3.問題のある部分は見当たらなかった 4.ソースが巨大すぎて読む気が失せる 5.あまりにも低レベルすぎて指摘のしようがない 6.誰も見てくれなかった 7.その他 >>344 もう1度ここでうぷってみたら?有能者が応えてくれるんじゃないの
348 名前:デフォルトの名無しさん [2010/03/27(土) 10:59:18 ] 有能な人のソースを見てみたい 凄く速いのかな
349 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:03:42 ] 宿題スレでお礼がくると あぁネタだったんだなぁ と思ってしまう
350 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:16:44 ] >>347 1、3、4、6はありえないと思う。 5は、そこまでひどくないとは信じたい JAVAの勉強で作ったゲームなんだけど・・・ 何度も晒すのは、ちょっと気が引ける・・・ ゲームは、まぁまぁおもしろいとは言ってくれたけど
351 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:25:43 ] まずはソースをうぷだ 話はそれからだ
352 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:25:53 ] あえて本気を出さないソースがうけるのか
353 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:46:16 ] これがうpしたゲームだけど・・・ toku.xdisc.net/cgi/up/qqq/nm22064.zip かなり不器用な処理してると思うけど、 まだまだ勉強中なので いろいろ教えてもらえると嬉しい
354 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 12:20:48 ] スネークゲームか。 implements Config はやめて static import NyoroArrayは事実上双方向リストなので、LinkedListあたりを利用 できないか考える。 Foodのもつ画像は、 static イニシャライザを使って、クラス全体で 10個持てばよいと思う。 今はノーマルエサがダイエットエサの出現状態まで管理までしている ようだけど、ノーマルエサとダイエットエサは同時に各1つしか出な いみたいなので、ゲーム世界側でそれぞれ1つずつ持つのがよいのでは ないだろうか。 では、ごはんー。
355 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 13:22:40 ] ActionKey.java 値が0と1しかないのなら、intじゃなくてbooleanを使ったほうがよいのでは。 初期化 private boolean status = false; メソッド public void press() { status=true; } public void release() { status=false; } public boolean isPressed() { return status; }
356 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:18:47 ] ゲームの出来ない(コンピュータにも余裕で負けるよ)、俺にはさっぱりルールが分からなかったorz 可愛い女の子の絵だけで、お腹が一杯です
357 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:20:09 ] ゲーム本体の良し悪しはともかくとして、 問題にしてるのはマップエディタの方では?
358 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:44:25 ] uploaderはこちら toku.xdisc.net/
359 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:49:47 ] >>353 向こうのスレで「面白い」とだけコメントしてたものです… ぱっと見て気になったのは>>354 で書かれてる最初のものですね。 あと全般的に、定数は自分だったらEnum使うかな。 Enum使うと振る舞いを持たせられるので夢がひろがりんぐ。 Nyoro2のメインメソッドの中身はSwingUtilities.invokeLater使ってEDTで呼ぶべきでしょうね。 java.sun.com/docs/books/tutorial/uiswing/concurrency/initial.html それとJava関係ないですけど、NetBeansのnbproject/privateディレクトリ以下は 配布しない方が良いかもです。 netbeans.org/kb/docs/java/import-eclipse_ja.html の"NetBeans プロジェクトファイル"
360 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:53:18 ] >>357 ゲームの人とマップエディタの人は別人じゃないの?
361 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 15:00:44 ] ゲームクリアしたら女の子とのセクロスシーンが出てくる、 なんてことになったらウレシくてティンコ旅立ち
362 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 15:03:27 ] マッポエディッタがうぷられて、マッポvs有能人の壮絶なバトル、ってなことになったら面白いのになあ
363 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 16:18:30 ] マップのセルが全部JButtonとか、グリッドがJTableとか、 そんなとこをエスパー予想。 …いや、Wizardryレベルのマップならそれで十分なんだけどさ
364 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 16:56:23 ] >>353 ゲームは全然知らないけど、それでも問題が多いのは分かる。 たぶん354, 355のような指摘は100個くらいは挙げらるし、クラス設計にも問題がある。 (が、設計の能力はすぐには身につかない) 普通の職業プログラマに対してなら、『プログラミング作法』、『Effective Java 第2版』、 『Java言語で学ぶデザインパターン入門』あたりの書籍を勧めるところだけど、ゲームは 文化の違い等があるから、たぶんこれらの本を読むのは遠回りになるだろうな。 >>355 おまえもいろいろと酷そうだなw boolean型でstatusなんて名前はない(名前は重要だぞ) private boolean pressed = false; public boolean isPressed() { return pressed; } 普通はこう。(ただしクラス設計としては問題がある)
365 名前:デフォルトの名無しさん [2010/03/27(土) 21:11:34 ] 誰か、statusという名前が駄目でpressedならオケという理由を教えてくれまいか ていうか、変数名に動詞を使うのにはめちゃくちゃ違和感がある 俺の場合、動詞から始まる名前はメソッドにしか使わないからなぁ
366 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 21:20:09 ] >>365 status = true とか return status とか見てもなにしてんのかわかりにくいだろ。 あと、 pressed は動詞じゃないから。
367 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 21:28:38 ] statusでは「何の」状態なのか分からない pressedなら押したかどうかなんだなと分かる まあキーなら押したかどうかしか状態がないだろという話もあるが メソッドと命名の方向性は合わせた方がいいと思う
368 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 21:48:11 ] そういうことか…レスサンクスコ。
369 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 21:54:16 ] とりあえずJavaコーディング規約おいときますね。 www.objectclub.jp/community/codingstandard/CodingStd.pdf これ以上の命名法の話題は命名系のスレでやった方がいいんじゃないかな。
370 名前:334 [2010/03/27(土) 21:56:30 ] 別にこまってないし、ソースupする気なんてないよ 遅い理由はJTableのレンダラにJLabelを使っているからなんだけど手を抜こうとしたらこれが都合よかったのでそうしてるだけだし。 にしても、あとはSwingのせい。 DataGridView@C#でやったらどんだけ高速だったことか。 見た目がいびつなのは、レイアウトマネージャーの動作がキチガイだから。 SWTのGridLayoutが神レイアウトだと思うんだけど、これのSwing版発見したのでつかってみて ttp://code.google.com/p/uface/issues/detail?id=8 掲示板添付のzipが使えた。 正式にはどこで公開されているのか知らん。英語わからんし。
371 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:01:10 ] 俺はSwingを使うときは無条件でSwingUtilities.invokeLater()を使ってたけど、 よくよく考えると結構重要なのかも wisdom.sakura.ne.jp/system/java/swing/swing4.html 353のソースは、まあ、よくできてるんじゃね? 俺も初心者レベルなんで詳しいことはよくわからんがw あとは… ifが連なってるところはswichi にしたほうがいいとか(一般的には条件分岐よりも ジャンプのほうが速いはず…だけどこれはコンパイラ依存か)、 女の子の画像は裸のほうがいいとか、そのくらいしかわからん。 個人的に、画像の直貼り付けは遅そうな感じがするけどどうなんだろうね。 (もちろん、速度を気にしないなら直貼り付けで全く問題ないけど) 画像データを配列に読み込んで、その配列を処理したほうが速い気がするんだけど、 それをやるとかなりソースが複雑になりそうだなあ。
372 名前:334 [2010/03/27(土) 22:06:05 ] 連続書き込みすまん swtgridlayoutで見た目は完全に改善された。かなりオススメ で、とりあえず俺はJavaもSwingも上級レベルで使えると自負してるけど これで(公開できるほど)まともなアプリをつくるのは 不可能または、並々ならぬ努力が必要と思うので 本気でみんなが何をつくっているのか気になる。 何かまともなもん作ったって事例があったら教えてくれ。
373 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:08:09 ] >>371 あまり関係ないけど、コンパイラ依存じゃなくてVM依存だと思うw
374 名前:353 mailto:sage [2010/03/27(土) 22:55:33 ] おぉ!沢山のレスありがとうございました! こんなに沢山アドバイス貰えるとは思ってなかったよ 知らない単語も出てきてるし、参考URLまで貼ってくれてるしで、 いろいろ調べて勉強してみます。 ありがとうございました ちなみに、トップの絵書いてくれた友達にも、 JAVA質問スレと、このスレで絵についてのレスされてる事を教えた所すごく喜んでましたw
375 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:03:48 ] >>364 で、あんたは>>347 のうちどれなの?
376 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:05:46 ] バカでも出来るコードレビューには食いつきが良いのなw
377 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:05:59 ] >>370 > 別にこまってないし じゃあなんで>>198 から1ヶ月もこのスレで頑張ってるの?
378 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:07:45 ] >>376 で、あんたは>>347 のうちどれなの?
379 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:10:32 ] >>378 誰と勘違いしてるの?バカなの?
380 名前:デフォルトの名無しさん [2010/03/28(日) 00:21:39 ] また猛牛が暴れだしたようだな
381 名前:353の友達 mailto:sage [2010/03/28(日) 00:21:55 ] >>361 さんのために300点クリア絵を描きました><* 皆さんのレス嬉しかったです><* ありがとうございました><* ttp://a-draw.com/contents/uploader2/src/up19034.gif
382 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:24:27 ] うpするにしてもレベル低いソースの方が食い付きがいいよね
383 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:29:38 ] >>381 なんだコイツ 受け狙いのつもりなのだろうか
384 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:31:30 ] くだらねぇ話でスレ延びてんな。Swing 関係ねぇじゃん。 もう Java 総合スレで統一したらどうだ。
385 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 02:36:03 ] 嫌あっちで反応悪くて、こっちでうpしたら、みんな気合い入れてコメント下から、当人らが興奮したってだけだろ。 どうせswingスレは普段過疎ってるから有効利用なんじゃねw
386 名前:334 [2010/03/28(日) 04:26:13 ] >>377 おおおぉ、凄いチェック力。>>198 書いたのすっかり忘れてた このスレで頑張ってるというか、グチ&みんなが何つくってるのか興味で書き込みしてるだけなんだけど .NETが性能も開発効率も見た目も圧倒的に良いのに、 いまだSwingにこだわる君たちの思考に興味がある
387 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 04:33:39 ] >>386 .NET って UNIX 系 OS や Mac とかでも動いたっけ?
388 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:43:44 ] 春だなあ java.netでもsf.netでもいいからSwingアプリ探してみなはれ。
389 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 15:31:24 ] monoの再現度がまだまだ。 というかwinでMS製言語使うにしてもVC++だと思う。
390 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:42:14 ] Swing と比べるなら .NET ではなくて Windows Forms や WPF じゃなかろうか。
391 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:15:04 ] JDK1.5なのでSwingWorkerが使えません。 この場合 1秒間隔でTimer起動→スレッド起動→バックエンド処理→待ち受け画面表示→イベント処理終了でswingスレッドを戻す →バックエンド処理終了→Timerのstaticに終了フラグセット(継承して持たせた) →Timer起動で呼ばれる→フラグ立ってるので待ち受け画面非表示 こんなことしないといけないんすかね… あ〜1.6で書きたい。ただ1.5以上サポートなんで1.6依存でかけない…
392 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:42:41 ] ライセンスとかに問題がなければ SwingWorkerをパッケージに含めてしまうというのも可能かも。 あるいは似たようなクラスを自分で書くとか。
393 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:33:05 ] >>370 1000x1000程度のJTableなら、全セルにイメージ貼り付けても、 スカスカ動くがな。 大方、全セルにJLabelをnewしてつっこんだとかだろ。
394 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 01:36:30 ] >>391 https://swingworker.dev.java.net/ This project is a backport of SwingWorker included into 1.6.
395 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 10:10:40 ] >>394 1.5で使えるとかって書いてないんですけど使えるものなんですかね?
396 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 10:20:14 ] たいていの質問回答スレには、最初の一行しか読まずに回答始めるあわてんぼさんが常駐してる。
397 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 11:09:30 ] This project is a backport of SwingWorker included into 1.6. を訳してみろ…
398 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 11:17:06 ] あ… もし backport の意味がわからなかったら用語辞典とかで調べるといいよ e-words.jp/w/E38390E38383E382AFE3839DE383BCE38388.html
399 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 11:35:50 ] 意味が分かりました。すみません。躍起になって1.5ばかり探してました・・・
400 名前:334 [2010/03/30(火) 19:48:53 ] >>393 newなんてするかい・・そこだけはりつけちゃる 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; }
401 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 00:40:49 ] きったねー
402 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 01:14:53 ] >>400 動作には関係ないが、ソースは少し見やすくなったかもしれない。 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; }
403 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 04:22:34 ] >>393 は逃げたか…
404 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 05:24:22 ] 単に図星だったから、慌ててソース書いただけだろw
405 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 06:55:43 ] そう思いたいんですね
406 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 08:45:49 ] 最初から示さなかった時点で負けとしか。 後だし乙。
407 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 15:31:23 ] JTreeの要素の並び順ってJtreeの機能で設定することができるでしょうか? それとも登録の前にソートして、ソートされた順番で登録しないといけないでしょうか?
408 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 16:07:36 ] >>407 TreeNodeに対して children() を呼んだときにソート済みで返ってくればよいと思う。 UIよりはモデル側の問題。
409 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:20:00 ] >>406 誰と戦ってんのおまえw
410 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 02:39:22 ] >>409 お前だろ、粘着乙www
411 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:17:26 ] javafx を始めたいんだけど、入門書ってありますか?
412 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 04:06:16 ] javafxは辞めておいたほうが。
413 名前:デフォルトの名無しさん mailto:sage [2010/04/07(水) 04:32:26 ] 入門レベルは英語ばっかだね。
414 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 03:31:16 ] LaboBrowser っての使ってみたけど全然ダメだの。 マトモに表示できるのは Google トップくらいだ。
415 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 03:56:42 ] Lobo? あれは JEditorPane よりもマシという程度
416 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 04:05:08 ] 一般的なブラウザ >> [実用性の壁] >>> Lobo >> Swing >>>> HotJava
417 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 07:42:00 ] JWebPaneまだ〜?
418 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 22:47:25 ] Flying Saucerの出番か!?
419 名前:334 [2010/04/11(日) 12:07:15 ] おひさしぶり! んでもって君らが何つくってんのか教えてくれんの?
420 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 22:24:28 ] JaneStyleとかすごい恥ずかしいUIだけど公開されてんぞ?
421 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 20:46:27 ] a
422 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 13:09:55 ] window自体に最優先のキーイベントを登録したいのですが、 要は、どのパネル、どのコンポーネントを開いていても呼ばれるイベントです。 WindowにWHEN_IN_FOCUSED_WINDOWのイベントをgetActionMap().put(action, action)するみたいな感じです。
423 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 13:10:50 ] ほほう。それでそれで?
424 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 10:17:51 ] >>422 KeyboardFocusManager.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日掛けて調べました。。。 もし宜しければ、私のブログの応援クリックをしてもらえませんか? study-blog.jugem.jp
425 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 10:21:33 ] 間違えました。 KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { public boolean dispatchKeyEvent(KeyEvent e) { if (e.getID() == KeyEvent.KEY_PRESSED) System.out.println(e); return false; } });
426 名前:デフォルトの名無しさん mailto:age [2010/05/01(土) 20:59:02 ] JTableに行ヘッダを追加しようとJScrollPane#setRowHeaderView()でJListのインスタンスを渡しました。 行ヘッダは追加されたのですが、 行ヘッダのJListでカーソル移動やマウスドラッグをするとJTable側がついてこず JListだけがスクロールします。 JTable側も連動させるにはどうすればよいのでしょう??
427 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:41:40 ] >>426 scrollPane.getRowHeader().addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { scrollPane.getViewport().setViewPosition(scrollPane.getRowHeader().getViewPosition()); } }); これで、カーソル移動とマウスドラッグはOKでした。たぶん他も大丈夫かと思います。 もしよろしければ>>424 のクリックをお願いします。
428 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 09:12:47 ] >>424 削除ガイドライン違反 8. URL表記・リンク 宣伝・罠・実行リンク ・明らかに宣伝を目的としたリンク・クリックや訪問で課金が発生するもの等は、宣伝掲示板以外では削除します。
429 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 13:13:52 ] こんなところで宣伝したら馬鹿に突撃されるぞ。
430 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 14:48:00 ] 専門板なら平気だよ。
431 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 23:02:19 ] >>428 悪気はないんですけどね。 まぁ無職で時間にゆとりがあるので、色々やっとるという訳です。 とりあえずクリックした人はいないようですw どうにかやっていく方法はないものでしょうか。 1.質問が出る。 2.アフィリエイトをクリックしてもらう。(1クリック数円) 3.解答をする。 という形式にしたいなぁと思っております。 >>429 ,430 基本的にプログラム板は過疎っていますからね(^^;
432 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 23:03:37 ] ↑スレ違い。適切なスレでやってください
433 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 23:33:06 ] >>432 そこを何とかお願いします。
434 名前:228 mailto:sage [2010/05/04(火) 07:47:44 ] じゃあ俺は>>424 のブログ?のコメントをエロサイトの宣伝に使わせてもらうよ。 だめ?そこを何とかお願いします。
435 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 09:07:07 ] >>434 あ、おはようございます。Give&Takeの精神でお願いします。
436 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:46:21 ] 宣伝嵐報告してきておk?
437 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:53:21 ] >>436 >>422 ,426にも意見を聞きたいところですけど。
438 名前:426 mailto:age [2010/05/05(水) 12:40:32 ] >>427 できました!つたない質問で的確な回答を頂けてとても感謝しています。 クリックしておきましたよ(^^
439 名前:427 mailto:sage [2010/05/05(水) 20:19:49 ] >>438 こちらこそ、ありがとう。 迷惑でなければ今後も質問があれば調べて回答したいと思います。
440 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:39:00 ] 1つのJPanelのインスタンスを、複数のJFrame上に同時に描画するにはどうすればよいですか?
441 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 23:05:40 ] シリアライズしてネット越しに垂れ流してデシリアライズとか
442 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 23:57:41 ] >>441 それじゃ「1つのインスタンス」にはならないじゃん。 >>440 共有すべきはmodelであってviewじゃない。
443 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 00:04:46 ] ____ / \ /\ キリッ . / (ー) (ー)\ 共有すべきはmodelであってviewじゃない / ⌒(__人__)⌒ \ | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
444 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 00:33:59 ] 巣に帰れw つ pc12.2ch.net/test/read.cgi/tech/1178723829/
445 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:36:26 ] >>443-444 ワロタ。
446 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 17:37:21 ] >>440 描画する数だけインスタンスが必要。
447 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 00:08:32 ] なんでviewじゃ駄目なんですか?
448 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:29:42 ] >>447 GUIコンポーネントは親を1つしか持てないから、複数のコンポーネントで1つの子を共有することができない。 参考: java.awt.Component とか java.awt.Container のソース。
449 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:31:59 ] てっきりイベントがらみで駄目なのかと思った
450 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:36:09 ] >>449 それもあるから親を1つしか持てないようになってるんだろう
451 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 10:07:14 ] ルックアンドフィールは、複数同時には使えない? JFrame 2つつくって、片方は、javax.swing.plaf.metal.MetalLookAndFeel もう片方は、UIManager.getSystemLookAndFeelClassName() でとってきたやつを 適用する、みたいなことはできないようになってるってことでいい?
452 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 10:14:23 ] JFrame を表示する前に都度 UIManager#setLookAndFeel()、 SwingUtilities#updateComponentTreeUI() で指定してやれば 見た目は別々になるんじゃないの。全くお勧めは出来ないが。
453 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 10:28:24 ] MetalLookAndFeelで1.1や1.2のころの昔の紫色のUIに変更するにはどうするんですか?
454 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 10:32:22 ] JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); の事か?
455 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 18:33:26 ] >>440 www.javakb.com/Uwe/Forum.aspx/java-setup/11894/Copying-the-View-of-a-JPanel このページの2番目のサンプルコードがとても参考になると思います。 >>451 VMを2つ起動という手も・・・ないか。
456 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 20:26:49 ] >>451 できるけど挙動が狂うって話があった気がする。
457 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 20:33:23 ] >>452 >>456 基本できないよな 少なくともAPI作り手はそんなこと想定しなていようだな サンキュー
458 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 23:53:25 ] >>453 LookAndFeel laf = new javax.swing.plaf.metal.MetalLookAndFeel(); MetalTheme theme = new javax.swing.plaf.metal.DefaultMetalTheme(); MetalLookAndFeel.setCurrentTheme(theme); UIManager.setLookAndFeel(laf); 多分これのことかな?
459 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 00:19:25 ] >>443 あたりに関連して、 frame1 : JFrame --- button1 : JButton frame2 : JFrame --- button2 : JButton みたいに、なってて、button1とbutton2が同じモデル buttonModel0をsetModelされてるとき、 frame1をクローズして、frame1がGCで回収された後でも、button1は、buttonModel0からリスナ経由で 参照されてるから残る。 もちろん、button1を再利用したいときもあるけど、そのままメモリリークになりやすい。 どこかのタイミングでプログラマの責任で、button1.setModel(null)して、モデルへの参照を切るべきなんだろうけど、 なんか、定石みたいな書き方ありますかね?
460 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 00:27:38 ] >>459 frame1 のクローズイベントで切り離す。
461 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:28:00 ] JTable でセルをdbl clickだんどするとそのセルをエディットできますよね。 これを無効にしたいんですがどのAPIでしょうか。 それにしてもJTableは複雑ですよね・・・
462 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:53:53 ] 日本語でおk
463 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:12:24 ] JTableは本当に複雑ですけど1つのコンポネントにあれこれ機能を詰め込みすぎって感じがします。 dbl clickやF2でセルを編集できるようになりますがこれをoffにするにはどうするんですか?
464 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:49:21 ] JTable.setDefaultEditor()にnullを渡しておくのはどうだろう。 本来は自作TableModelを作るべきだと思うが。
465 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:33:23 ] >>464 javadocみるとそれしかないかなって思ってましたけど、一番単純な方法はやはりそれでしょうね。 javaはclassの継承を中心とした言語設計なのに、swingはDIというかMVCというかプラグインというか、java langにとってswinの設計思想はまったく異質なので非常に複雑なライブラリとなっています。 愚痴を言うわけではないですが複雑な割にこの程度の機能(それもtableとして当たり前のような機能)しかないswing.tableなら、 少なくともhtml,dom,xmlやgridbag + cellの自作コンポでほとんど用が足りると思います。 javascript.prototypeのような考えならまた違ったのかもしれませんが、それをいうとあとの祭りなのでしょうね。 それと日本語のswingを扱ったHPは皆無ですね。グーグルでもこのスレがよくヒットします。
466 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:41:38 ] ああ、誤解を招きかねないですが、spiなら問題ないですがswingのようなui,skinableではspiや plubableじゃなくてcssや、顧客一人一人に合わせたskin(script)のようにもっと軽く設定できない (つまりskin,look,feelingについては固定の設定は存在しないという設計思想)と、UI開発者は敬遠するかなって思います。 webクリエーチャ達の髪の毛の軽さと同じく、JEditorPaneのhtmlエディタもしかりです。
467 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 05:26:11 ] >>465-466 SwingはJavaプログラマのためのライブラリです。 htmlやcssの方が得意な人のためのライブラリではありません。 SwingにhtmlやcssでUIを設定できないと文句を言うのはお門違いだと思います。
468 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:05:58 ] 正確に言うとjavaじゃ無くてjvmプラットのUI
469 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 15:55:54 ] xmlならsynthがある。 JEditorPaneは最初はやる気満々だったけど扱おうとするドキュメントが方言だらけで投げた。 というかここら辺のフォローはSwing labの管轄なんだが。 まあ俺々思想が強すぎて>>465 の意図がよく分からんが。
470 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 16:02:48 ] synthはswing uiに新しい機能を定義したり追加したりするものじゃないですよね・・・
471 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 16:19:01 ] swin sets 3も見てみましたけど、ただ高機能にしただけってところじゃないですかね。 それら機能の追加などカスタムなことをユーザ(開発者)が簡単にできるようにしないと汎用コンポでもないし汎用ライブラリ(javax swing)としても意味ないです。 少なくともjava,c++(qt3,qt4),dotnet,gameライブラリを当たり前のように使える開発者は時間があればそれぐらいのコンポネントは普通に作れますよ。 swing labのコンポネントはnetbeans apiに組み込んじゃったほうがいいんじゃないかと思います。 今はjavafxでしょうし、lgplのようですし、せっかく有用なコンポなのでswtと同じ感じでnetbeansを特に使う人達への特権ってことで。
472 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 16:42:55 ] ブログでやれ
473 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 11:39:06 ] キーバインドの変更だけならInputMap使うほうが素直では。
474 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:52:13 ] htmlしかコーディング出来ないスキルでguiやろうってのが無謀。
475 名前:デフォルトの名無しさん [2010/06/26(土) 19:50:11 ] ahe
476 名前:デフォルトの名無しさん [2010/07/02(金) 10:14:55 ] 低速だとはおもわない
477 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 13:15:39 ] 伝統だから付いてるだけだよ。 # 「Java 高速 GUI SWT」に対する皮肉も込めて…
478 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 02:29:19 ] 教えてください。 JFrame→JDialog(モーダル)→JDialog(モーダル)の画面遷移で、 最後のJDialogをdispose()すると、最後のJDialog残像が残るんですが、(何回かやってると) dispose()した後、2番目のJDialogをrepaint()しないといけないもんですか? 実際はもうちょっと複雑で、 2番目のJDialogの中にtableがあってTableのセル内のボタンを押した時に、 3番目のJDialogが開くようになってます。 そこで、選択した物をテーブルに表示するという処理になります。 3番目のJDialogを引数無で作成すると残像は起こらないんですが、 オーナー(2番目のJDialog)を指定してJDialogを作成した場合のみ問題が発生します。
479 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 09:30:08 ] hideしてからdispose
480 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 18:04:51 ] 1.5以降ではhide()は推奨されないメソッドになっているため、 JavaDocの通り、setVisible(false)をしてからとか、 windowクラスのtoBack()をしてからdispose()をするなど、 色々と試してみたんですがうまくいきません。(モーダルなのでtoBack()は効くかもわかりませんが(汗)) あとは、windowsの問題かと思い、VM引数のnoddraw=trueでやってみたりもしたんですがダメでした・・ 奥が深いですね・・・
481 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 18:19:52 ] それが再現出来るような説明を付けてバグ報告
482 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 23:55:02 ] 3番目のJDialogをEventQueue.invokeAndWait()経由で開いてみるのはどうだろう。
483 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 18:14:32 ] 先回りエスパーでinvokeLaterと修正してみるテスト
484 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 23:58:22 ] SwingUtilsですね 確認してみます。 色々と助言ありがとうございます。 解せないのは、 オーナーを指定した場合と、していない場合の動作ですが まだわからないことが多いので勉強してみます。
485 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 12:48:41 ] Apache pivotのWTKって、Swingの補完に使えんのかな。