- 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
- 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 だけはいつも俺の心のアニキ。
|

|