1read 100read
2013年02月プログラム218: Java低速GUI Swing 10 (207) TOP カテ一覧 スレ一覧 2ch元 削除依頼
C言語なら俺に聞け(入門編)Part 112 (499)
構造化ウェブプログラミング言語Dart2 (657)
【独学】一人で勉強する奴らのスレ【自習】 (387)
VB.NETのとんでもない欠陥に気づいた (298)
【License】ライセンス総合【利用許諾】 (480)
Google Maps API 質問箱 (326)

Java低速GUI Swing 10


1 :2011/09/20 〜 最終レス :2012/11/21
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 9
http://hibari.2ch.net/test/read.cgi/tech/1261232019/
Java低速GUI Swing 8
http://pc12.2ch.net/test/read.cgi/tech/1227234261/
Java低速GUI Swing 7
http://pc11.2ch.net/test/read.cgi/tech/1204155623/
Java低速GUI Swing 6
http://pc11.2ch.net/test/read.cgi/tech/1190807478/
Java低速GUI Swing 5
http://pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
http://pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50

2 :
>>1
R

3 :
このスレッドは天才pンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
                  京都大学霊長類研究所

4 :
>>1

5 :
>>3
そのコピペは立て逃げスレに貼るものなんだが

6 :
         _,,,,,ィ=ー-、_      /
       /. : : : : : : : : : : .ヽ     /  ィ
      /. : /: : : : : : : : : : : : .\  /  ┼
      /. : /: : : : ハ: : :}斗、ヽ: : .|    ノ
      |. : /_: 斗〒\八」 ∨リリ     _,_
      乂レl;W弋ノ      };l_>    | | ``
    ∠___l;人  , ─ァ  ノ'ノ
      |: :从ハ`┼一ィ刋:::\     r┴,
      |: : : : : : :};Y/ハ{;;;;;;;;ノ      /
      ヽ-‐ァ‐ァ';|l/\∧イ    \  /
        /\/;;|l' ̄ハ }      \
        /  |;;メ二ニ| |
       ャ、__/l;lゝ   ト‐|
      / `/|_,_|;|,_,_,_,_,_ト′
     /  / |==|;|=====|
   ∠、,,ィ〜' └r幵─‐r七
         {Ξ}  匕}

7 :
Swingってなんでこんなに人気ないの?
割りと真面目に教えて下さい

8 :
>>7
ファイル選択のダイアログがショボイ
http://java2005.cis.k.hosei.ac.jp/materials/lecture24/swing2/filechooser.png

9 :
>>8
他にも教えて下さい

10 :
遅い、見た目がダサい

11 :
漢は黙ってAWTだろJK

12 :
RADがなくてメンドイ

13 :
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 :
AWTもターゲットに入ってていいんだよね?
Q. AWT と Swing 混ぜちゃ駄目って聞いたんですけど
  混ぜちゃ駄目なんですか・・・・?
A.
 今まででは、「駄目」というのが正解です。
 が、現在開発中(未リリース)のバージョンではSwingとAWTの混在ができるようになっています。
 正式リリースがされるまで、情報の錯綜があって混乱すると思いますが
 普通の人にとっては「まだ駄目」という状況だと思ってください。
Q. Nimbusって何よ。
A.
 次期Swingの標準となるとされているLAFです。
 元々は、SUNのGnome環境のテーマに使われていた見た目を移植したものになります。
 実装にはXMLベースでLAFを定義できるSynthLookAndFeel を利用しています。
 jdk6の開発版で試す事ができます。
Q. こんなプログラムを作れって言われたんですが・・・
A.
 宿題スレへどうぞ。
Q. なんでスレタイに低速って入ってるの?
A.
 まだまだ速くなるってことさ。

15 :
Q. JavaFX と Swing 混ぜちゃ駄目なの?
A.
  SwingベースのアプリにJavaFXコンポーネントを乗せるのはOKです。
  逆は不可です。(JavaFX2.0現在)ちなみに、JavaFX2.0は今年の下旬に
  リリースされます。今はベータ版です。

16 :
JDK7でてるのにQ&Aは6以前のままだな。

17 :
まだ開発者向けだからな

18 :
Nimbusはもう普通につかっていいよな

19 :
Nimbusに変えたいけどレイアウトが崩れるし
微妙にセンスが悪い気がするので結局Windowsのままだ

20 :
Nimbusと混ぜるとウマーとJOGLパイプライン統合とアプレットのDnDはもうQ&Aでもよさそう。
SwingX系はJRE7の一般DL以降くらいじゃねか?
JavaFXまわりは検討もつかん。JavaFXはprismエンジンだから描画スレッドとEDT別だよってのはここの範疇?

21 :
>>7
見た目はWindowsのLookAndFeelでぎりぎりなんとかなるけど、
ファイル選択ダイアログの細部の挙動がネイティブと違って気持ち悪い。
あと、テキストフィールドで右クリックしたときの挙動とか。
でも、大きな理由はそんな細部じゃなくて、起動が遅いこと。
ディスクキャッシュに乗ってないとJVM起動して、関連するクラスロードして、
最初のフレーム表示するまでに数秒かかる。
動き出せばネイティブとの速度的な差はない。


22 :
会社で使う分には、起動が遅い方が、いいよ。その分、ゆとりがでる。

23 :
商用のソフトじゃ使われてないから人気がないように見えるけど
社内とかだと結構使われてたりするよ

24 :
数千行のテキストを容易に表示できて
表示するテキストを後から容易に追加できて
テキスト中に何らかのコンポーネント(テキストのリンク、アイコン、ボタンなどどれでも良い)も表示できて
そこからイベントを発生させられるような
コンポーネントはありますか?
JEditorPaneでハイパーリンクを使うことを考えましたが
HTMLにテキストを追加するのが容易ではないのと、テキスト追加が頻繁にあると重くなりそうで、別の選択肢が無いか探しています。

25 :
テキスト追加と、表示とを分けて考えたほうがいい。
たとえば編集にはJTextArea、表示にJEditorPaneを使って、Wikiっぽくするとか
どうよ? どうしても同じ画面でやりたいとかじゃなきゃ、いけそうだが。

26 :
テキスト追加はユーザが編集するのではなくて
プログラムがテキストを出力します

27 :
>>26
難しい、重いと思うならコンポーネントなんか使わないで独自実装でもすれば?
ぐだぐだ抜かしてないで、まず実装してから最適化しろよ。

28 :
>>24
数千行くらいJEditorPaneで十分だがJListでも使っとけ

29 :
>>27
質問の意図を理解してないアホはR
>>28
どうもです

30 :
>>29
おまえじゃ無理

31 :
ケンカすんな

32 :
JavaFXって一体どこで使うべき技術なのかいまいち分からない。

33 :
>>32
んなもん、おまぇ、Swingの代わりだろ・・

34 :
>>33
JavaFXってSwingに依存してないってこと?

35 :
スレチ
http://hibari.2ch.net/test/read.cgi/tech/1316592884/

36 :
SwingもそのうちJava標準GUIライブラリの地位を
剥奪されたりすんのかな

37 :
>>34
依存しなくてもできるし、依存してもいい。
もともと、JavaFXスクリプトっていって、WindowsプログラムにおけるWPFのような
お気軽なGUI設計思考で作られた。でも、スクリプト自体がなんもなくなってしまった。

38 :
JavaFXにはコンポーネントが不足してるのでSwingも使う→
Swingにはリッチなコンポーネントが不足しているのでSwingXも使う(java7いまここ)→Swing labは終ってしまったので結局路頭に迷う。

39 :
Swingはん、まだまだこれからやで〜。
わし、今日、3980円もする、JavaGUIVol.1ていう、Swingばっかの本こうてきたわ。


40 :
奇遇やな
わしおととい図書館でVol.2借りてきたで
付属のCDにVol1のソースまで付いてきて得した気分になったで

41 :
UI 関連は、タッチパネルUI勢、HTML5勢の勢いがすごいからな
すぐに Swing 並の API が JavaScript で用意できるか俺は懐疑的だが
もしものすごい実装用意されたら、ついに Swing は終わってしまうな


42 :
それはない

43 :
HTML5全盛の今でも、PCではまだIE6サポートしないといけないから実戦では使えない

44 :
流れてくるメッセージがちょいちょい違うから混乱するかもな。
それで混乱して質問したら「なんでそんなことやってんだ」と罵倒される。
それに変なクセがつきそう。
練習ならメインウインドウにボタンやらエディットコントロールを貼り付ければ良いと思うよ。
全部CreateWindowでできる。
猫でもわかるかWisdomsoft参考にしろ。

45 :
http://hibari.2ch.net/test/read.cgi/tech/1315282582/862

46 :
JApplet(Swingのアプレット)にJTableって乗せれる?

47 :
motiron

48 :
>>47
どうもです。Javaアプレット復権しないっすかね〜。

49 :
しないだろう
というかあんな時代はもう来なくていい

50 :
Javaメインに使ってる自分としては、わざわざActionScriptとか別に覚えるの面倒だから
Appletのが良いかな。

51 :
全盛期のjavaアプレットは、あまりに重くてただのブラクラと化してたけど
Swingみたく今はそうでもないのかね

52 :
iOS や Windows 8 がすでに、もうブラウザ上で動くプログラムは
HTML5 オンリーと決め込んでるからな
Flash も Java も Silverlight も廃れるべきと奴らは考えてるらしい。
おれが思いうに Java は着々とセキュリティホールは塞がれてるし、
動作速度も速い。ブラウザの対応も年の功で進んでる。開発環境は
揃ってて、クロスプラットフォームのクライアントサイドの技術と
しては今ある中ではベストだと思うよ。

53 :
ブラウザがダメになるならAppletを実行・起動するにはどうすればいいんですか?

54 :
JavaWebStartってアプレット扱えなかったっけ?

55 :
ウィンドウベースのアプリケーションに移植するなら
JApplet.setContentPane(mainPane)
のとこを
JFrame.setContentPane(mainPane)
とかすれば、まあ動くだろう
まあ、アプレットはブラウザ上でセキュアに動くから、
ユーザにとって価値があるのであって、なんでもやらかす
ウィンドウベースのレガシーなアプリケーションにされると
よくないだろう

56 :
そういえば Adobe AIR はどこにいったかね

57 :
radikoで現役じゃん

58 :
>>50
そこでGWTですよ

59 :
>>58
確かに、html + JavaScript(&ライブラリ)使って開発するよりは、Javaプログラマにとっては
ハードルは下がりますね…
しかしGWT使った開発、規模が大きくなるとすごく面倒。
コンパイルが洒落にならないくらい時間かかる、ってのが一番大きいと思うけど、他にもデバッグ時とか。
同等規模のhtml5風開発したこと無いのでJavaプログラマにとってどっちがよりましか、
ってのは分からないんだけどもね。

60 :
>>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 :
ごめん、多分
> Appletをデスクトップにドラッグ&ドロップすると
> 通常のアプリのようにアイコンダブルクリックで起動できるようになる(JWSとしてインストールされる?)
は記憶違い。
そして>>55はJWSのことを言ってるわけじゃないことにも気付きました…

62 :
GWTってWAVEと同じでもうオワコンなんでしょ?

63 :
ハジマル前からオワテタ

64 :
JavaFXがmobile&tabletでも動けばなぁ。
ここの部分は切り捨てなくてよかったと思うよJavaFX。
つかAndroidで動くCDC/PPがいるか。

65 :
javaでRIAがもっとしっかりしてればウェブトップ開発に使えたのに

66 :
それがAndroidなんじゃないか?

67 :
java質問スレとどっちに書くか迷ったのですが、こちらで
質問させてください。
BorderLayoutなJFrameのCENTER位置にJTabbedPaneを
置いて、MouseListener#mouseExitedを仕込みその中で
setCursorsしています。
すると、JTabbedPaneから周りのcomponentにゆっくり
カーソルを出した場合は、さらにwindow外にポインタを
出してもsetしたカーソルを維持してくれます。
が、マウスを早く動かして周りのcomponent上での滞空時間が
短くなるようにカーソルをwindow外に出した場合は、カーソルが
変わってくれなかったり、windowの大きさ変更のカーソルに
なったりします。
これをゆっくり動かしたときと同じようにすることは出来ない
でしょうか。
(mouseExitedイベント自体はちゃんと発生してます)
(window外で発生するmouseDraggedイベント内でsetCursors
してもカーソルは変わってくれませんでした)
(setCursorsはRootPaneのGlassPaneにおこなっています)

68 :
了解

69 :
setCursorのjavadocに、「このコンポーネントの contains メソッドが
現在のカーソル位置に対して true を返」さないと駄目って書いてある
じゃんorz
マウスの動きが速くてsetCursor前にコンポーネント外に出てしまうと
きかなくなっちゃう、って話ですね。
完全にawtの問題でした。質問すれに行きます。すれ汚しすまんかったです。

70 :
>>66
RIAとAndroidになんの関係があるんだ?

71 :
SwingUtilities.invokeAndWait() が invocationTargetException をスローするとEDTが終了してくれないようなのですが、
何かいい対処方法ないでしょうか…

72 :
ttp://javafaq.jp/S065.html#S065-37
ああ、ここらへんみたいです。自己解決しました。

73 :
5か6で必要なくなったけど全部のケースじゃなかったのか?

74 :
>>71
EDTの生成、終了ってユーザが管理するものではないと思うが…
死んでも勝手に復活するぞ?

75 :
流れ嫁

76 :
流れ婿

77 :
>>72
それが原因じゃねーだろ

78 :
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 :
setModalityType()とかでモードレスに設定するか
普通にJFrameでも使おう。

80 :
さんくすです。
モーダルダイアログだとsetVisible(true)すると
setVisible(false)かdisponse()するまで処理が止まるんですね。

81 :
http://pastebin.com/4qH6Adke
上記のようなTableTest.javaというjavaのソースファイルを実行すると、
下図のように、表の部分にマダマダ余白があるにも関わらずスクロールバーが現れてしまうUIとなってしまいます
http://uproda.2ch-library.com/475736Up9/lib475736.jpg
このレイアウトで余白がなくなるまでスクロールバーが表示されないようにするにはどうすれば良いでしょうか?
また、初心者なので他に変な所があれば指摘頂けるとありがたいです

82 :
>>81
35,36行目、JSplitPaneにつっこむところのJScrollPaneを消す。

83 :
>>82
出来ました!それすると表の項目名(xとy)が表示されないものとばかり思ってました
ありがとうございます

84 :
JTableの選択モードで
・クリックしたセルを含む行全体を選択(ハイライト)
・同時に選択できる行は1行のみ
のようにするにはどう選択モードを設定すればよいですか?

85 :
JTable table;
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setCellSelectionEnabled(false);

86 :
JEditorPaneにHTMLフォームを表示しsubmitボタンでフォームデータを表示するプログラムを
↓を参考に作成しましたが、submitボタンでNullPointerExceptionが発生します。
ttp://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 :
ポップアップメニューで選択されたのをトリガーとして
なにか重い処理を行う場合(サンプルコードのdoSomethingメソッドのような)、
ポップアップメニューが表示されたまま、画面が固まったようになってしまいます。
画面が固まるのは仕方ないとして、別処理の前にポップアップメニューを
非表示にすることはできないのでしょうか。よろしくお願いします。
サンプルコードは以下です
http://ideone.com/zIVRZ

88 :
>>87
別スレッド立てて、そのなかで重い処理すればいいよ。
今時はスレッドを直接使うんじゃなく、swingworker使うのが普通かな。

89 :
http://uproda.2ch-library.com/484203UfN/lib484203.png
Windows環境(XP/7)の文字入力で変換候補ウィンドウが入力文字に重なってしまうのを、
重ならない様に表示する方法があれば教えてください。
AWTでの表示のようになって欲しいです。

90 :
>>89
Sunの実装が手抜きで未確定文字左下のx,yしかwindowsに送ってないのが原因だから、
Java側からじゃどうしようもないと思う。
BugDatabase行くか、Swing使うの諦めるか、我慢するか。

91 :
どうしようもないですか…
分かりました、ありがとうございました。

92 :
GUIスレッドとファイル・通信を行う2つスレッドのがあります。
ファイル・通信を行うスレッドでイベントを発生させて、GUIスレッドでイベントをキャッチしたいのです。
どのようにすればイベントを発生させることができますか

93 :
SwingUtilities.invokeLater

94 :
あるウインドウ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 :
どうみてもメニューが押されて初めてBが生成されてるようにしか読めないのだが。
Bのコンストラクタにthisを渡したらthisがnullだったわけ?

96 :
>>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 :
こちらこそヨロシクお願いします

98 :
this 自身はたとえコンストラクタの中でも null にならないよ!
きっと何か勘違いしてるよ!
本当にコンストラクタのせいだと思うならコンストラクタであれこれ初期化するのをやめればいいだけじゃない!
init メソッドとか別に作ってそこで色々やればいいと思うよ!

99 :
内部クラスでのthis参照は色々と落とし穴があるので要注意。
解らなかったらとりあえず内部クラス使うのやめてみよう。
いや、thisがnullとかありえないから。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
GPGPU#5 (276)
相田みつを with プログラム (339)
【Delphi互換!?】FreePascal/Lazarus その2【GPL】 (288)
C#終了のお知らせ (957)
リファクタリングをただのコード修正と思ってる人へ (274)
Gtkプログラミング on Windows!!! (353)
--log9.info------------------
今聴いてるBeatles(ソロ含む)の曲書いてよ!Part2 (765)
リンゴ・スターアンチスレ (430)
12月8日は、あの人の命日です part2 (894)
▼邦題命名は我々に任せてもらおうか▼ (834)
ZEPvsすっとんず・その4 (651)
マイケル・ジャクソン死去 (496)
レッド・ツェッペリンはビートルズを越えたけれど (569)
ビートルズは飽きる (218)
【ノエル】帰ってきたOASISスレ【リアム】 (605)
ジミヘンがもし死んでなければどうなってた? (649)
ビートルズはもう演歌 (836)
日本ではビートルズとクイーンどっちが人気か (909)
ピート・タウンゼント、自殺も考えていた (337)
☆VOX★ビートルズのアンプ★Fender☆ (593)
モーリンかわいい (218)
◎マイケル・ネスミスを語ってみよう◎ (313)
--log55.com------------------
首都圏情報 ネタドリ!「家族が最期を決めるとき〜脳死移植 初めて語る葛藤〜」
ドキュメント72時間「福島・浪江 ふるさとのスーパーで」★2
連続テレビ小説 スカーレット ★189
チコちゃんに叱られる!★5
魔入りました!入間くん 第17話「走れ入間、キリヲのもとへ!」 位階1
[再]植物に学ぶ生存戦略 話す人・山田孝之 ★4(修正済)
NHK教育を見て59406倍賢く日曜日
情報ライブ ミヤネ屋 ★5