Java低速GUI Swing 10 (492レス)
1-

1
(2): デフォルトの名無しさん [sage] 2011/09/20(火) 23:23:15.82 AAS
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 9
2chスレ:tech
Java低速GUI Swing 8
2chスレ:tech
Java低速GUI Swing 7
2chスレ:tech
Java低速GUI Swing 6
2chスレ:tech
Java低速GUI Swing 5
2chスレ:tech
Java低速GUI Swing 4
2chスレ:tech
Java低速GUI Swing 3
2chスレ:tech
Java低速GUI Swing 2
2chスレ:tech
Java低速GUI Swing
2chスレ:tech
2: デフォルトの名無しさん [sage] 2011/09/20(火) 23:25:04.43 AAS
>>1
死ね
3
(1): デフォルトの名無しさん [sage] 2011/09/20(火) 23:27:45.12 AAS
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
4: デフォルトの名無しさん [sage] 2011/09/21(水) 02:11:40.61 AAS
>>1
5: デフォルトの名無しさん [sage] 2011/09/21(水) 02:29:52.31 AAS
>>3
そのコピペは立て逃げスレに貼るものなんだが
6: デフォルトの名無しさん [sage] 2011/09/21(水) 04:02:35.65 AAS
         _,,,,,ィ=ー-、_      /
       /. : : : : : : : : : : .ヽ     /  ィ
      /. : /: : : : : : : : : : : : .\  /  ┼
      /. : /: : : : ハ: : :}斗、ヽ: : .|    ノ
      |. : /_: 斗〒\八」 ∨リリ     _,_
      乂レl;?弋ノ      };l_>    | | ``
    ∠___l;人  , ─ァ  ノ'ノ
      |: :从ハ`┼一ィ刋:::\     r┴,
      |: : : : : : :};Y/ハ{;;;;;;;;ノ      /
      ヽ-‐ァ‐ァ';|l/\∧イ    \  /
        /\/;;|l' ̄ハ }      \
        /  |;;メ二ニ| |
       ャ、__/l;lゝ   ト‐|
      / `/|_,_|;|,_,_,_,_,_ト′
     /  / |==|;|=====|
   ∠、,,ィ〜' └r幵─‐r七
         {Ξ}  匕}
7
(2): デフォルトの名無しさん [sage] 2011/09/21(水) 14:06:38.66 AAS
Swingってなんでこんなに人気ないの?
割りと真面目に教えて下さい
8
(2): デフォルトの名無しさん [sage] 2011/09/21(水) 14:23:35.86 AAS
>>7
ファイル選択のダイアログがショボイ
http://java2005.cis.k.hosei.ac.jp/materials/lecture24/swing2/filechooser.png

9: デフォルトの名無しさん [sage] 2011/09/21(水) 14:58:07.83 AAS
>>8
他にも教えて下さい
10: デフォルトの名無しさん [sage] 2011/09/21(水) 15:32:39.49 AAS
遅い、見た目がダサい
11: デフォルトの名無しさん [sage] 2011/09/21(水) 15:41:33.88 AAS
漢は黙ってAWTだろJK
12: デフォルトの名無しさん [sage] 2011/09/21(水) 17:11:44.68 AAS
RADがなくてメンドイ
13: デフォルトの名無しさん [sage] 2011/09/22(木) 08:18:46.01 AAS
VisualStudioのようなポトペタ開発環境がほしい!!
NetBeans
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
14: デフォルトの名無しさん [sage] 2011/09/22(木) 08:19:33.40 AAS
AWTもターゲットに入ってていいんだよね?

Q. AWT と Swing 混ぜちゃ駄目って聞いたんですけど
  混ぜちゃ駄目なんですか・・・・?
A.
 今まででは、「駄目」というのが正解です。
 が、現在開発中(未リリース)のバージョンではSwingとAWTの混在ができるようになっています。
 正式リリースがされるまで、情報の錯綜があって混乱すると思いますが
 普通の人にとっては「まだ駄目」という状況だと思ってください。

Q. Nimbusって何よ。
A.
 次期Swingの標準となるとされているLAFです。
 元々は、SUNのGnome環境のテーマに使われていた見た目を移植したものになります。
 実装にはXMLベースでLAFを定義できるSynthLookAndFeel を利用しています。
 jdk6の開発版で試す事ができます。

Q. こんなプログラムを作れって言われたんですが・・・
A.
 宿題スレへどうぞ。

Q. なんでスレタイに低速って入ってるの?
A.
 まだまだ速くなるってことさ。
15: デフォルトの名無しさん [sage] 2011/09/22(木) 08:19:57.39 AAS
Q. JavaFX と Swing 混ぜちゃ駄目なの?

A.
  SwingベースのアプリにJavaFXコンポーネントを乗せるのはOKです。
  逆は不可です。(JavaFX2.0現在)ちなみに、JavaFX2.0は今年の下旬に
  リリースされます。今はベータ版です。
16: デフォルトの名無しさん [sage] 2011/09/22(木) 12:15:44.75 AAS
JDK7でてるのにQ&Aは6以前のままだな。
17: デフォルトの名無しさん [sage] 2011/09/22(木) 13:06:49.15 AAS
まだ開発者向けだからな
18: デフォルトの名無しさん [sage] 2011/09/22(木) 13:35:42.21 AAS
Nimbusはもう普通につかっていいよな
19: デフォルトの名無しさん [sage] 2011/09/22(木) 21:06:07.82 AAS
Nimbusに変えたいけどレイアウトが崩れるし
微妙にセンスが悪い気がするので結局Windowsのままだ
20: デフォルトの名無しさん [sage] 2011/09/22(木) 23:44:36.26 AAS
Nimbusと混ぜるとウマーとJOGLパイプライン統合とアプレットのDnDはもうQ&Aでもよさそう。
SwingX系はJRE7の一般DL以降くらいじゃねか?
JavaFXまわりは検討もつかん。JavaFXはprismエンジンだから描画スレッドとEDT別だよってのはここの範疇?
21: デフォルトの名無しさん [sage] 2011/09/25(日) 11:50:18.93 AAS
>>7
見た目はWindowsのLookAndFeelでぎりぎりなんとかなるけど、
ファイル選択ダイアログの細部の挙動がネイティブと違って気持ち悪い。
あと、テキストフィールドで右クリックしたときの挙動とか。

でも、大きな理由はそんな細部じゃなくて、起動が遅いこと。
ディスクキャッシュに乗ってないとJVM起動して、関連するクラスロードして、
最初のフレーム表示するまでに数秒かかる。
動き出せばネイティブとの速度的な差はない。
22: デフォルトの名無しさん [sage] 2011/09/25(日) 12:47:42.50 AAS
会社で使う分には、起動が遅い方が、いいよ。その分、ゆとりがでる。
23: デフォルトの名無しさん [sage] 2011/09/25(日) 12:55:35.08 AAS
商用のソフトじゃ使われてないから人気がないように見えるけど
社内とかだと結構使われてたりするよ
24
(1): デフォルトの名無しさん [] 2011/09/25(日) 13:27:25.01 AAS
数千行のテキストを容易に表示できて
表示するテキストを後から容易に追加できて
テキスト中に何らかのコンポーネント(テキストのリンク、アイコン、ボタンなどどれでも良い)も表示できて
そこからイベントを発生させられるような
コンポーネントはありますか?

JEditorPaneでハイパーリンクを使うことを考えましたが
HTMLにテキストを追加するのが容易ではないのと、テキスト追加が頻繁にあると重くなりそうで、別の選択肢が無いか探しています。
25: デフォルトの名無しさん [sage] 2011/09/25(日) 14:53:43.96 AAS
テキスト追加と、表示とを分けて考えたほうがいい。
たとえば編集にはJTextArea、表示にJEditorPaneを使って、Wikiっぽくするとか
どうよ? どうしても同じ画面でやりたいとかじゃなきゃ、いけそうだが。
26
(1): デフォルトの名無しさん [sage] 2011/09/25(日) 18:41:24.17 AAS
テキスト追加はユーザが編集するのではなくて
プログラムがテキストを出力します
27
(1): デフォルトの名無しさん [sage] 2011/09/25(日) 20:09:40.16 AAS
>>26
難しい、重いと思うならコンポーネントなんか使わないで独自実装でもすれば?
ぐだぐだ抜かしてないで、まず実装してから最適化しろよ。
28
(1): デフォルトの名無しさん [sage] 2011/09/25(日) 23:41:30.43 AAS
>>24
数千行くらいJEditorPaneで十分だがJListでも使っとけ
29
(1): デフォルトの名無しさん [sage] 2011/09/26(月) 16:48:51.44 AAS
>>27
質問の意図を理解してないアホは死ね

>>28
どうもです
30: デフォルトの名無しさん [sage] 2011/09/26(月) 17:37:02.94 AAS
>>29
おまえじゃ無理
31: デフォルトの名無しさん [sage] 2011/09/26(月) 18:02:49.84 AAS
ケンカすんな
32
(1): デフォルトの名無しさん [sage] 2011/10/03(月) 21:03:40.05 AAS
JavaFXって一体どこで使うべき技術なのかいまいち分からない。
33
(1): デフォルトの名無しさん [sage] 2011/10/03(月) 21:39:44.04 AAS
>>32
んなもん、おまぇ、Swingの代わりだろ・・
34
(1): デフォルトの名無しさん [sage] 2011/10/03(月) 21:41:40.22 AAS
>>33
JavaFXってSwingに依存してないってこと?
35: デフォルトの名無しさん [sage] 2011/10/04(火) 08:50:32.34 AAS
スレチ
2chスレ:tech
36: デフォルトの名無しさん [sage] 2011/10/04(火) 08:58:15.69 AAS
SwingもそのうちJava標準GUIライブラリの地位を
剥奪されたりすんのかな
37: デフォルトの名無しさん [sage] 2011/10/04(火) 17:56:40.53 AAS
>>34
依存しなくてもできるし、依存してもいい。
もともと、JavaFXスクリプトっていって、WindowsプログラムにおけるWPFのような
お気軽なGUI設計思考で作られた。でも、スクリプト自体がなんもなくなってしまった。
38: デフォルトの名無しさん [sage] 2011/10/05(水) 18:48:09.85 AAS
JavaFXにはコンポーネントが不足してるのでSwingも使う→
Swingにはリッチなコンポーネントが不足しているのでSwingXも使う(java7いまここ)→Swing labは終ってしまったので結局路頭に迷う。
39: デフォルトの名無しさん [sage] 2011/10/06(木) 02:28:29.67 AAS
Swingはん、まだまだこれからやで〜。
わし、今日、3980円もする、JavaGUIVol.1ていう、Swingばっかの本こうてきたわ。
40: デフォルトの名無しさん [sage] 2011/10/06(木) 02:44:39.96 AAS
奇遇やな
わしおととい図書館でVol.2借りてきたで
付属のCDにVol1のソースまで付いてきて得した気分になったで
41: デフォルトの名無しさん [] 2011/10/06(木) 08:34:53.32 AAS
UI 関連は、タッチパネルUI勢、HTML5勢の勢いがすごいからな

すぐに Swing 並の API が JavaScript で用意できるか俺は懐疑的だが
もしものすごい実装用意されたら、ついに Swing は終わってしまうな
42: デフォルトの名無しさん [sage] 2011/10/06(木) 08:58:41.45 AAS
それはない
43: デフォルトの名無しさん [sage] 2011/10/06(木) 20:51:28.65 AAS
HTML5全盛の今でも、PCではまだIE6サポートしないといけないから実戦では使えない
44: デフォルトの名無しさん [] 2011/10/06(木) 21:15:58.13 AAS
流れてくるメッセージがちょいちょい違うから混乱するかもな。
それで混乱して質問したら「なんでそんなことやってんだ」と罵倒される。
それに変なクセがつきそう。

練習ならメインウインドウにボタンやらエディットコントロールを貼り付ければ良いと思うよ。
全部CreateWindowでできる。
猫でもわかるかWisdomsoft参考にしろ。
45: デフォルトの名無しさん [sage] 2011/10/08(土) 10:16:05.78 AAS
2chスレ:tech
46
(1): デフォルトの名無しさん [] 2011/10/11(火) 10:20:12.45 AAS
JApplet(Swingのアプレット)にJTableって乗せれる?
47
(1): デフォルトの名無しさん [sage] 2011/10/11(火) 16:46:18.74 AAS
motiron
48: 46 [sage] 2011/10/12(水) 12:15:11.24 AAS
>>47
どうもです。Javaアプレット復権しないっすかね〜。
49: デフォルトの名無しさん [sage] 2011/10/12(水) 13:54:28.64 AAS
しないだろう
というかあんな時代はもう来なくていい
50
(1): デフォルトの名無しさん [sage] 2011/10/12(水) 14:05:56.18 AAS
Javaメインに使ってる自分としては、わざわざActionScriptとか別に覚えるの面倒だから
Appletのが良いかな。
51: デフォルトの名無しさん [sage] 2011/10/12(水) 14:20:24.13 AAS
全盛期のjavaアプレットは、あまりに重くてただのブラクラと化してたけど
Swingみたく今はそうでもないのかね
52: デフォルトの名無しさん [] 2011/10/12(水) 14:34:34.67 AAS
iOS や Windows 8 がすでに、もうブラウザ上で動くプログラムは
HTML5 オンリーと決め込んでるからな

Flash も Java も Silverlight も廃れるべきと奴らは考えてるらしい。

おれが思いうに Java は着々とセキュリティホールは塞がれてるし、
動作速度も速い。ブラウザの対応も年の功で進んでる。開発環境は
揃ってて、クロスプラットフォームのクライアントサイドの技術と
しては今ある中ではベストだと思うよ。
53: デフォルトの名無しさん [sage] 2011/10/12(水) 15:17:33.07 AAS
ブラウザがダメになるならAppletを実行・起動するにはどうすればいいんですか?
54
(1): デフォルトの名無しさん [sage] 2011/10/12(水) 15:30:10.80 AAS
JavaWebStartってアプレット扱えなかったっけ?
55
(2): デフォルトの名無しさん [sage] 2011/10/12(水) 17:24:59.78 AAS
ウィンドウベースのアプリケーションに移植するなら
JApplet.setContentPane(mainPane)
のとこを
JFrame.setContentPane(mainPane)
とかすれば、まあ動くだろう

まあ、アプレットはブラウザ上でセキュアに動くから、
ユーザにとって価値があるのであって、なんでもやらかす
ウィンドウベースのレガシーなアプリケーションにされると
よくないだろう
56: デフォルトの名無しさん [sage] 2011/10/12(水) 18:18:38.68 AAS
そういえば Adobe AIR はどこにいったかね
57: デフォルトの名無しさん [sage] 2011/10/12(水) 18:35:17.45 AAS
radikoで現役じゃん
58
(1): デフォルトの名無しさん [] 2011/10/12(水) 20:06:08.81 AAS
>>50
そこでGWTですよ
59: デフォルトの名無しさん [sage] 2011/10/12(水) 23:09:50.56 AAS
>>58
確かに、html + JavaScript(&ライブラリ)使って開発するよりは、Javaプログラマにとっては
ハードルは下がりますね…

しかしGWT使った開発、規模が大きくなるとすごく面倒。
コンパイルが洒落にならないくらい時間かかる、ってのが一番大きいと思うけど、他にもデバッグ時とか。
同等規模のhtml5風開発したこと無いのでJavaプログラマにとってどっちがよりましか、
ってのは分からないんだけどもね。
60
(1): デフォルトの名無しさん [sage] 2011/10/12(水) 23:37:32.61 AAS
>>55
Java6u10でAppletもJava Web StartもセキュリティについてはJNLPファイルで指定するようになったから
一緒なんだと思ってたけど、違うのかな?

http://java.sun.com/developer/technicalArticles/javase/6u10_applets/
とか、ちょっとURL見つからないけどAppletをデスクトップにドラッグ&ドロップすると
通常のアプリのようにアイコンダブルクリックで起動できるようになる(JWSとしてインストールされる?)
みたいなデモも昔見たことあるんだけど、こういうのみたときAppletとJWSって実質
同じものなのかなー、なんて思ったんだけど。

>>54
これかな?
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/developersguide/syntax.html#applet_desc
61: 60 [sage] 2011/10/12(水) 23:50:40.90 AAS
ごめん、多分
> Appletをデスクトップにドラッグ&ドロップすると
> 通常のアプリのようにアイコンダブルクリックで起動できるようになる(JWSとしてインストールされる?)
は記憶違い。
そして>>55はJWSのことを言ってるわけじゃないことにも気付きました…
62: デフォルトの名無しさん [sage] 2011/10/13(木) 00:18:03.76 AAS
GWTってWAVEと同じでもうオワコンなんでしょ?
63: デフォルトの名無しさん [sage] 2011/10/13(木) 00:22:58.94 AAS
ハジマル前からオワテタ
64: デフォルトの名無しさん [sage] 2011/10/13(木) 04:12:46.11 AAS
JavaFXがmobile&tabletでも動けばなぁ。
ここの部分は切り捨てなくてよかったと思うよJavaFX。
つかAndroidで動くCDC/PPがいるか。
65: デフォルトの名無しさん [sage] 2011/10/19(水) 05:11:14.63 AAS
javaでRIAがもっとしっかりしてればウェブトップ開発に使えたのに
66
(1): デフォルトの名無しさん [sage] 2011/10/19(水) 11:42:08.99 AAS
それがAndroidなんじゃないか?
67
(1): デフォルトの名無しさん [sage] 2011/10/21(金) 21:28:11.58 AAS
java質問スレとどっちに書くか迷ったのですが、こちらで
質問させてください。

BorderLayoutなJFrameのCENTER位置にJTabbedPaneを
置いて、MouseListener#mouseExitedを仕込みその中で
setCursorsしています。

すると、JTabbedPaneから周りのcomponentにゆっくり
カーソルを出した場合は、さらにwindow外にポインタを
出してもsetしたカーソルを維持してくれます。

が、マウスを早く動かして周りのcomponent上での滞空時間が
短くなるようにカーソルをwindow外に出した場合は、カーソルが
変わってくれなかったり、windowの大きさ変更のカーソルに
なったりします。

これをゆっくり動かしたときと同じようにすることは出来ない
でしょうか。

(mouseExitedイベント自体はちゃんと発生してます)
(window外で発生するmouseDraggedイベント内でsetCursors
してもカーソルは変わってくれませんでした)
(setCursorsはRootPaneのGlassPaneにおこなっています)
68: デフォルトの名無しさん [sage] 2011/10/21(金) 22:40:38.30 AAS
了解
69: 67 [sage] 2011/10/22(土) 08:33:58.21 AAS
setCursorのjavadocに、「このコンポーネントの contains メソッドが
現在のカーソル位置に対して true を返」さないと駄目って書いてある
じゃんorz
マウスの動きが速くてsetCursor前にコンポーネント外に出てしまうと
きかなくなっちゃう、って話ですね。
完全にawtの問題でした。質問すれに行きます。すれ汚しすまんかったです。
70: デフォルトの名無しさん [sage] 2011/10/22(土) 12:45:02.33 AAS
>>66
RIAとAndroidになんの関係があるんだ?
71
(2): デフォルトの名無しさん [] 2011/10/23(日) 15:31:13.82 AAS
SwingUtilities.invokeAndWait() が invocationTargetException をスローするとEDTが終了してくれないようなのですが、
何かいい対処方法ないでしょうか…
72
(1): 71 [sage] 2011/10/23(日) 15:37:25.43 AAS
http://javafaq.jp/S065.html#S065-37

ああ、ここらへんみたいです。自己解決しました。
73: デフォルトの名無しさん [sage] 2011/10/23(日) 15:40:54.70 AAS
5か6で必要なくなったけど全部のケースじゃなかったのか?
74: デフォルトの名無しさん [sage] 2011/10/24(月) 10:20:47.22 AAS
>>71
EDTの生成、終了ってユーザが管理するものではないと思うが…
死んでも勝手に復活するぞ?
75: デフォルトの名無しさん [sage] 2011/10/24(月) 14:33:58.22 AAS
流れ嫁
76: デフォルトの名無しさん [sage] 2011/10/24(月) 17:33:33.87 AAS
流れ婿
77: デフォルトの名無しさん [sage] 2011/10/25(火) 03:12:17.90 AAS
>>72
それが原因じゃねーだろ
78: デフォルトの名無しさん [] 2012/01/10(火) 12:06:38.54 AAS
SwingでmouseClickedの中でnew JDialog(...)してsetVisible(true)すると、
そこで処理が止まっちゃうんだけど、どうしたらいいの?

class HogeListener extends MouseAdaptor {
 public voud mouseClicked(MouseEvent ev.) {
  JDialog dialog = new JDialog(...);
  System.out.println("1");
  dialog.setVisible(true);
  System.out.println("2");
 }
}
79: デフォルトの名無しさん [sage] 2012/01/10(火) 12:41:37.61 AAS
setModalityType()とかでモードレスに設定するか
普通にJFrameでも使おう。
80: デフォルトの名無しさん [sage] 2012/01/10(火) 20:02:40.41 AAS
さんくすです。
モーダルダイアログだとsetVisible(true)すると
setVisible(false)かdisponse()するまで処理が止まるんですね。
81
(2): デフォルトの名無しさん [sage] 2012/01/12(木) 00:52:54.57 AAS
http://pastebin.com/4qH6Adke
上記のようなTableTest.javaというjavaのソースファイルを実行すると、
下図のように、表の部分にマダマダ余白があるにも関わらずスクロールバーが現れてしまうUIとなってしまいます
http://uproda.2ch-library.com/475736Up9/lib475736.jpg

このレイアウトで余白がなくなるまでスクロールバーが表示されないようにするにはどうすれば良いでしょうか?

また、初心者なので他に変な所があれば指摘頂けるとありがたいです
82
(1): デフォルトの名無しさん [sage] 2012/01/12(木) 22:42:06.88 AAS
>>81
35,36行目、JSplitPaneにつっこむところのJScrollPaneを消す。
83: 81 [sage] 2012/01/12(木) 23:34:46.24 AAS
>>82
出来ました!それすると表の項目名(xとy)が表示されないものとばかり思ってました
ありがとうございます
84: デフォルトの名無しさん [] 2012/01/15(日) 22:32:04.55 AAS
JTableの選択モードで

・クリックしたセルを含む行全体を選択(ハイライト)
・同時に選択できる行は1行のみ

のようにするにはどう選択モードを設定すればよいですか?
85: デフォルトの名無しさん [sage] 2012/01/19(木) 08:36:19.94 AAS
JTable table;
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setCellSelectionEnabled(false);
86: デフォルトの名無しさん [] 2012/01/20(金) 20:37:51.11 AAS
JEditorPaneにHTMLフォームを表示しsubmitボタンでフォームデータを表示するプログラムを
↓を参考に作成しましたが、submitボタンでNullPointerExceptionが発生します。
http://www15.plala.or.jp/kichijitsu/java/jeditorpane_submit.html

どこがおかしいのでしょうか?

editorPane.setEditable(false);
editorPane.setContentType("text/html");
editorPane.setText(content);
((HTMLEditorKit) editorPane.getEditorKit()).setAutoFormSubmission(false);
editorPane.addHyperlinkListener(new MyHyperlinkListener());

class MyHyperlinkListener implements HyperlinkListener {
 @Override
 public void hyperlinkUpdate(HyperlinkEvent event) {
  System.out.println("HOGEHOGE"); //←マウスがリンクに重なると表示されます。
  if(event instanceof FormSubmitEvent) {
   System.out.println("PIYOPIYO"); //←submitボタンを押してもここまできません。
   ・・・・
  }
・・・・

↓発生する例外
Exception occurred during event dispatching:
java.lang.NullPointerException
 at javax.swing.text.html.FormView.submitData(FormView.java:376)
 at javax.swing.text.html.FormView.actionPerformed(FormView.java:356)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
 ・・・・
87
(1): デフォルトの名無しさん [sage] 2012/01/24(火) 01:22:12.63 AAS
ポップアップメニューで選択されたのをトリガーとして
なにか重い処理を行う場合(サンプルコードのdoSomethingメソッドのような)、
ポップアップメニューが表示されたまま、画面が固まったようになってしまいます。
画面が固まるのは仕方ないとして、別処理の前にポップアップメニューを
非表示にすることはできないのでしょうか。よろしくお願いします。

サンプルコードは以下です
http://ideone.com/zIVRZ
88: デフォルトの名無しさん [sage] 2012/01/24(火) 18:55:30.08 AAS
>>87
別スレッド立てて、そのなかで重い処理すればいいよ。
今時はスレッドを直接使うんじゃなく、swingworker使うのが普通かな。
89
(1): デフォルトの名無しさん [sage] 2012/02/03(金) 11:38:07.78 AAS
http://uproda.2ch-library.com/484203UfN/lib484203.png

Windows環境(XP/7)の文字入力で変換候補ウィンドウが入力文字に重なってしまうのを、
重ならない様に表示する方法があれば教えてください。

AWTでの表示のようになって欲しいです。
90: デフォルトの名無しさん [sage] 2012/02/03(金) 15:03:24.45 AAS
>>89
Sunの実装が手抜きで未確定文字左下のx,yしかwindowsに送ってないのが原因だから、
Java側からじゃどうしようもないと思う。

BugDatabase行くか、Swing使うの諦めるか、我慢するか。
91: デフォルトの名無しさん [sage] 2012/02/03(金) 15:53:25.38 AAS
どうしようもないですか…
分かりました、ありがとうございました。
92: デフォルトの名無しさん [sage] 2012/02/19(日) 10:56:26.50 AAS
GUIスレッドとファイル・通信を行う2つスレッドのがあります。
ファイル・通信を行うスレッドでイベントを発生させて、GUIスレッドでイベントをキャッチしたいのです。
どのようにすればイベントを発生させることができますか
93: デフォルトの名無しさん [sage] 2012/02/20(月) 10:52:32.50 AAS
SwingUtilities.invokeLater
94
(3): デフォルトの名無しさん [sage] 2012/03/02(金) 14:18:11.33 AAS
あるウインドウAのメニューからそのウインドウの設定パネルBを出して、ウインドウAの位置や
大きさの現在値を表示したいのですが、設定パネルBを生成するのがウインドウAのコンストラクタ内
(Aの部品のメニューにaddActionListener()を設定して,その中でnew ActionListener(),
さらにその中でactionPerformed(ActionEvent)として,その中で new B() を呼ぶ)
なので,Aへの参照をBのコンストラクタに引数で渡して B(A instanceOfA) のようにしても
instanceOfAには常にnullしか入っていません。(つまりAのコンストラクタが完了して完全にAを
生成した状態になる前の時点でB(A)を呼び出してしまっているのだと思います)
こういうときSwingではどういうふうにするのが常套手段なんでしょうか?
Aのコンストラクタ内以外でBのデータを更新して表示する方法があるのかわかりません。
お教えいただきたくお願いします。
95
(1): デフォルトの名無しさん [sage] 2012/03/02(金) 15:03:46.87 AAS
どうみてもメニューが押されて初めてBが生成されてるようにしか読めないのだが。
Bのコンストラクタにthisを渡したらthisがnullだったわけ?
96
(1): デフォルトの名無しさん [sage] 2012/03/02(金) 15:24:30.23 AAS
>>95
そうれす。
この場合のthisはAなんだけど、Bのコンストラクタを呼び出すのがAのコンストラクタの内部だから
Aがまだ生成されていないのでthisはまだnullのままなんだと思う。
JavaはそこそこやってるんだけどSwingは最近始めたばかりなので感覚がわからん。
ウインドウA への参照を aRoot として取得できるかと思って B を生成するメニュー項目 menuItemB を使い
final JFrame aRoot = (JFrame) SwingUtilities.getRoot(menuItemB);
みたいなのをイベント発生前に入れてみても、所詮 A のコンストラクタ内なのでaRoot==nullなんだな。
目的とする処理はありがちなので常套手段があるんだと思う。引き続きお願いします。
97
(1): デフォルトの名無しさん [sage] 2012/03/02(金) 15:52:33.69 AAS
こちらこそヨロシクお願いします
98
(1): デフォルトの名無しさん [sage] 2012/03/02(金) 16:00:44.75 AAS
this 自身はたとえコンストラクタの中でも null にならないよ!
きっと何か勘違いしてるよ!
本当にコンストラクタのせいだと思うならコンストラクタであれこれ初期化するのをやめればいいだけじゃない!
init メソッドとか別に作ってそこで色々やればいいと思うよ!
99
(1): デフォルトの名無しさん [sage] 2012/03/02(金) 16:05:09.38 AAS
内部クラスでのthis参照は色々と落とし穴があるので要注意。
解らなかったらとりあえず内部クラス使うのやめてみよう。

いや、thisがnullとかありえないから。
100
(1): デフォルトの名無しさん [sage] 2012/03/02(金) 16:28:55.75 AAS
>>98>>99ついでに>>97
確認のために内部クラスを使わずに単純なクラスA,Bを作り、Aのコンストラクタ内部で
BのコンストラクタB(A)を呼び出してみましたが,たしかにAには非null値がちゃんと渡されていました。
>>99さんのご指摘のとおり、やはり内部クラスからのthis参照がまずいようです。
>>98さんのご指摘のようにコンストラクタ以外のinit()メソッドのようなものを作って呼び出したいのですが
どのタイミングで呼び出せば良いかがわかりません。
「パネルBを開いた」というのを、Bのコンストラクタでもなく、actionPerformed()ブロックの中でもなく
呼び出すには、Swingではどのようなからくりを使うんでしょう?初心者でサーセン。
1-
あと 392 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s