ハードウェアの高スペック化、描画アルゴリズムの変更、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
Java低速GUI Swing 10
2011/09/20(火) 23:23:15.82
2011/09/25(日) 12:55:35.08
商用のソフトじゃ使われてないから人気がないように見えるけど
社内とかだと結構使われてたりするよ
社内とかだと結構使われてたりするよ
24デフォルトの名無しさん
2011/09/25(日) 13:27:25.01 数千行のテキストを容易に表示できて
表示するテキストを後から容易に追加できて
テキスト中に何らかのコンポーネント(テキストのリンク、アイコン、ボタンなどどれでも良い)も表示できて
そこからイベントを発生させられるような
コンポーネントはありますか?
JEditorPaneでハイパーリンクを使うことを考えましたが
HTMLにテキストを追加するのが容易ではないのと、テキスト追加が頻繁にあると重くなりそうで、別の選択肢が無いか探しています。
表示するテキストを後から容易に追加できて
テキスト中に何らかのコンポーネント(テキストのリンク、アイコン、ボタンなどどれでも良い)も表示できて
そこからイベントを発生させられるような
コンポーネントはありますか?
JEditorPaneでハイパーリンクを使うことを考えましたが
HTMLにテキストを追加するのが容易ではないのと、テキスト追加が頻繁にあると重くなりそうで、別の選択肢が無いか探しています。
2011/09/25(日) 14:53:43.96
テキスト追加と、表示とを分けて考えたほうがいい。
たとえば編集にはJTextArea、表示にJEditorPaneを使って、Wikiっぽくするとか
どうよ? どうしても同じ画面でやりたいとかじゃなきゃ、いけそうだが。
たとえば編集にはJTextArea、表示にJEditorPaneを使って、Wikiっぽくするとか
どうよ? どうしても同じ画面でやりたいとかじゃなきゃ、いけそうだが。
2011/09/25(日) 18:41:24.17
テキスト追加はユーザが編集するのではなくて
プログラムがテキストを出力します
プログラムがテキストを出力します
2011/09/25(日) 20:09:40.16
2011/09/25(日) 23:41:30.43
>>24
数千行くらいJEditorPaneで十分だがJListでも使っとけ
数千行くらいJEditorPaneで十分だがJListでも使っとけ
2011/09/26(月) 16:48:51.44
2011/09/26(月) 17:37:02.94
>>29
おまえじゃ無理
おまえじゃ無理
2011/09/26(月) 18:02:49.84
ケンカすんな
2011/10/03(月) 21:03:40.05
JavaFXって一体どこで使うべき技術なのかいまいち分からない。
2011/10/03(月) 21:39:44.04
>>32
んなもん、おまぇ、Swingの代わりだろ・・
んなもん、おまぇ、Swingの代わりだろ・・
2011/10/03(月) 21:41:40.22
>>33
JavaFXってSwingに依存してないってこと?
JavaFXってSwingに依存してないってこと?
2011/10/04(火) 08:50:32.34
2011/10/04(火) 08:58:15.69
SwingもそのうちJava標準GUIライブラリの地位を
剥奪されたりすんのかな
剥奪されたりすんのかな
2011/10/04(火) 17:56:40.53
>>34
依存しなくてもできるし、依存してもいい。
もともと、JavaFXスクリプトっていって、WindowsプログラムにおけるWPFのような
お気軽なGUI設計思考で作られた。でも、スクリプト自体がなんもなくなってしまった。
依存しなくてもできるし、依存してもいい。
もともと、JavaFXスクリプトっていって、WindowsプログラムにおけるWPFのような
お気軽なGUI設計思考で作られた。でも、スクリプト自体がなんもなくなってしまった。
2011/10/05(水) 18:48:09.85
JavaFXにはコンポーネントが不足してるのでSwingも使う→
Swingにはリッチなコンポーネントが不足しているのでSwingXも使う(java7いまここ)→Swing labは終ってしまったので結局路頭に迷う。
Swingにはリッチなコンポーネントが不足しているのでSwingXも使う(java7いまここ)→Swing labは終ってしまったので結局路頭に迷う。
2011/10/06(木) 02:28:29.67
Swingはん、まだまだこれからやで〜。
わし、今日、3980円もする、JavaGUIVol.1ていう、Swingばっかの本こうてきたわ。
わし、今日、3980円もする、JavaGUIVol.1ていう、Swingばっかの本こうてきたわ。
2011/10/06(木) 02:44:39.96
奇遇やな
わしおととい図書館でVol.2借りてきたで
付属のCDにVol1のソースまで付いてきて得した気分になったで
わしおととい図書館でVol.2借りてきたで
付属のCDにVol1のソースまで付いてきて得した気分になったで
41デフォルトの名無しさん
2011/10/06(木) 08:34:53.32 UI 関連は、タッチパネルUI勢、HTML5勢の勢いがすごいからな
すぐに Swing 並の API が JavaScript で用意できるか俺は懐疑的だが
もしものすごい実装用意されたら、ついに Swing は終わってしまうな
すぐに Swing 並の API が JavaScript で用意できるか俺は懐疑的だが
もしものすごい実装用意されたら、ついに Swing は終わってしまうな
2011/10/06(木) 08:58:41.45
それはない
2011/10/06(木) 20:51:28.65
HTML5全盛の今でも、PCではまだIE6サポートしないといけないから実戦では使えない
44デフォルトの名無しさん
2011/10/06(木) 21:15:58.13 流れてくるメッセージがちょいちょい違うから混乱するかもな。
それで混乱して質問したら「なんでそんなことやってんだ」と罵倒される。
それに変なクセがつきそう。
練習ならメインウインドウにボタンやらエディットコントロールを貼り付ければ良いと思うよ。
全部CreateWindowでできる。
猫でもわかるかWisdomsoft参考にしろ。
それで混乱して質問したら「なんでそんなことやってんだ」と罵倒される。
それに変なクセがつきそう。
練習ならメインウインドウにボタンやらエディットコントロールを貼り付ければ良いと思うよ。
全部CreateWindowでできる。
猫でもわかるかWisdomsoft参考にしろ。
2011/10/08(土) 10:16:05.78
46デフォルトの名無しさん
2011/10/11(火) 10:20:12.45 JApplet(Swingのアプレット)にJTableって乗せれる?
2011/10/11(火) 16:46:18.74
motiron
2011/10/12(水) 13:54:28.64
しないだろう
というかあんな時代はもう来なくていい
というかあんな時代はもう来なくていい
2011/10/12(水) 14:05:56.18
Javaメインに使ってる自分としては、わざわざActionScriptとか別に覚えるの面倒だから
Appletのが良いかな。
Appletのが良いかな。
2011/10/12(水) 14:20:24.13
全盛期のjavaアプレットは、あまりに重くてただのブラクラと化してたけど
Swingみたく今はそうでもないのかね
Swingみたく今はそうでもないのかね
52デフォルトの名無しさん
2011/10/12(水) 14:34:34.67 iOS や Windows 8 がすでに、もうブラウザ上で動くプログラムは
HTML5 オンリーと決め込んでるからな
Flash も Java も Silverlight も廃れるべきと奴らは考えてるらしい。
おれが思いうに Java は着々とセキュリティホールは塞がれてるし、
動作速度も速い。ブラウザの対応も年の功で進んでる。開発環境は
揃ってて、クロスプラットフォームのクライアントサイドの技術と
しては今ある中ではベストだと思うよ。
HTML5 オンリーと決め込んでるからな
Flash も Java も Silverlight も廃れるべきと奴らは考えてるらしい。
おれが思いうに Java は着々とセキュリティホールは塞がれてるし、
動作速度も速い。ブラウザの対応も年の功で進んでる。開発環境は
揃ってて、クロスプラットフォームのクライアントサイドの技術と
しては今ある中ではベストだと思うよ。
2011/10/12(水) 15:17:33.07
ブラウザがダメになるならAppletを実行・起動するにはどうすればいいんですか?
2011/10/12(水) 15:30:10.80
JavaWebStartってアプレット扱えなかったっけ?
2011/10/12(水) 17:24:59.78
ウィンドウベースのアプリケーションに移植するなら
JApplet.setContentPane(mainPane)
のとこを
JFrame.setContentPane(mainPane)
とかすれば、まあ動くだろう
まあ、アプレットはブラウザ上でセキュアに動くから、
ユーザにとって価値があるのであって、なんでもやらかす
ウィンドウベースのレガシーなアプリケーションにされると
よくないだろう
JApplet.setContentPane(mainPane)
のとこを
JFrame.setContentPane(mainPane)
とかすれば、まあ動くだろう
まあ、アプレットはブラウザ上でセキュアに動くから、
ユーザにとって価値があるのであって、なんでもやらかす
ウィンドウベースのレガシーなアプリケーションにされると
よくないだろう
2011/10/12(水) 18:18:38.68
そういえば Adobe AIR はどこにいったかね
2011/10/12(水) 18:35:17.45
radikoで現役じゃん
58デフォルトの名無しさん
2011/10/12(水) 20:06:08.81 >>50
そこでGWTですよ
そこでGWTですよ
2011/10/12(水) 23:09:50.56
>>58
確かに、html + JavaScript(&ライブラリ)使って開発するよりは、Javaプログラマにとっては
ハードルは下がりますね…
しかしGWT使った開発、規模が大きくなるとすごく面倒。
コンパイルが洒落にならないくらい時間かかる、ってのが一番大きいと思うけど、他にもデバッグ時とか。
同等規模のhtml5風開発したこと無いのでJavaプログラマにとってどっちがよりましか、
ってのは分からないんだけどもね。
確かに、html + JavaScript(&ライブラリ)使って開発するよりは、Javaプログラマにとっては
ハードルは下がりますね…
しかしGWT使った開発、規模が大きくなるとすごく面倒。
コンパイルが洒落にならないくらい時間かかる、ってのが一番大きいと思うけど、他にもデバッグ時とか。
同等規模のhtml5風開発したこと無いのでJavaプログラマにとってどっちがよりましか、
ってのは分からないんだけどもね。
2011/10/12(水) 23:37:32.61
>>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
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
6160
2011/10/12(水) 23:50:40.90 ごめん、多分
> Appletをデスクトップにドラッグ&ドロップすると
> 通常のアプリのようにアイコンダブルクリックで起動できるようになる(JWSとしてインストールされる?)
は記憶違い。
そして>>55はJWSのことを言ってるわけじゃないことにも気付きました…
> Appletをデスクトップにドラッグ&ドロップすると
> 通常のアプリのようにアイコンダブルクリックで起動できるようになる(JWSとしてインストールされる?)
は記憶違い。
そして>>55はJWSのことを言ってるわけじゃないことにも気付きました…
2011/10/13(木) 00:18:03.76
GWTってWAVEと同じでもうオワコンなんでしょ?
2011/10/13(木) 00:22:58.94
ハジマル前からオワテタ
2011/10/13(木) 04:12:46.11
JavaFXがmobile&tabletでも動けばなぁ。
ここの部分は切り捨てなくてよかったと思うよJavaFX。
つかAndroidで動くCDC/PPがいるか。
ここの部分は切り捨てなくてよかったと思うよJavaFX。
つかAndroidで動くCDC/PPがいるか。
2011/10/19(水) 05:11:14.63
javaでRIAがもっとしっかりしてればウェブトップ開発に使えたのに
2011/10/19(水) 11:42:08.99
それがAndroidなんじゃないか?
2011/10/21(金) 21:28:11.58
java質問スレとどっちに書くか迷ったのですが、こちらで
質問させてください。
BorderLayoutなJFrameのCENTER位置にJTabbedPaneを
置いて、MouseListener#mouseExitedを仕込みその中で
setCursorsしています。
すると、JTabbedPaneから周りのcomponentにゆっくり
カーソルを出した場合は、さらにwindow外にポインタを
出してもsetしたカーソルを維持してくれます。
が、マウスを早く動かして周りのcomponent上での滞空時間が
短くなるようにカーソルをwindow外に出した場合は、カーソルが
変わってくれなかったり、windowの大きさ変更のカーソルに
なったりします。
これをゆっくり動かしたときと同じようにすることは出来ない
でしょうか。
(mouseExitedイベント自体はちゃんと発生してます)
(window外で発生するmouseDraggedイベント内でsetCursors
してもカーソルは変わってくれませんでした)
(setCursorsはRootPaneのGlassPaneにおこなっています)
質問させてください。
BorderLayoutなJFrameのCENTER位置にJTabbedPaneを
置いて、MouseListener#mouseExitedを仕込みその中で
setCursorsしています。
すると、JTabbedPaneから周りのcomponentにゆっくり
カーソルを出した場合は、さらにwindow外にポインタを
出してもsetしたカーソルを維持してくれます。
が、マウスを早く動かして周りのcomponent上での滞空時間が
短くなるようにカーソルをwindow外に出した場合は、カーソルが
変わってくれなかったり、windowの大きさ変更のカーソルに
なったりします。
これをゆっくり動かしたときと同じようにすることは出来ない
でしょうか。
(mouseExitedイベント自体はちゃんと発生してます)
(window外で発生するmouseDraggedイベント内でsetCursors
してもカーソルは変わってくれませんでした)
(setCursorsはRootPaneのGlassPaneにおこなっています)
2011/10/21(金) 22:40:38.30
了解
6967
2011/10/22(土) 08:33:58.21 setCursorのjavadocに、「このコンポーネントの contains メソッドが
現在のカーソル位置に対して true を返」さないと駄目って書いてある
じゃんorz
マウスの動きが速くてsetCursor前にコンポーネント外に出てしまうと
きかなくなっちゃう、って話ですね。
完全にawtの問題でした。質問すれに行きます。すれ汚しすまんかったです。
現在のカーソル位置に対して true を返」さないと駄目って書いてある
じゃんorz
マウスの動きが速くてsetCursor前にコンポーネント外に出てしまうと
きかなくなっちゃう、って話ですね。
完全にawtの問題でした。質問すれに行きます。すれ汚しすまんかったです。
2011/10/22(土) 12:45:02.33
>>66
RIAとAndroidになんの関係があるんだ?
RIAとAndroidになんの関係があるんだ?
71デフォルトの名無しさん
2011/10/23(日) 15:31:13.82 SwingUtilities.invokeAndWait() が invocationTargetException をスローするとEDTが終了してくれないようなのですが、
何かいい対処方法ないでしょうか…
何かいい対処方法ないでしょうか…
7271
2011/10/23(日) 15:37:25.43 ttp://javafaq.jp/S065.html#S065-37
ああ、ここらへんみたいです。自己解決しました。
ああ、ここらへんみたいです。自己解決しました。
2011/10/23(日) 15:40:54.70
5か6で必要なくなったけど全部のケースじゃなかったのか?
2011/10/24(月) 10:20:47.22
2011/10/24(月) 14:33:58.22
流れ嫁
2011/10/24(月) 17:33:33.87
流れ婿
2011/10/25(火) 03:12:17.90
>>72
それが原因じゃねーだろ
それが原因じゃねーだろ
78デフォルトの名無しさん
2012/01/10(火) 12:06:38.54 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");
}
}
そこで処理が止まっちゃうんだけど、どうしたらいいの?
class HogeListener extends MouseAdaptor {
public voud mouseClicked(MouseEvent ev.) {
JDialog dialog = new JDialog(...);
System.out.println("1");
dialog.setVisible(true);
System.out.println("2");
}
}
2012/01/10(火) 12:41:37.61
setModalityType()とかでモードレスに設定するか
普通にJFrameでも使おう。
普通にJFrameでも使おう。
2012/01/10(火) 20:02:40.41
さんくすです。
モーダルダイアログだとsetVisible(true)すると
setVisible(false)かdisponse()するまで処理が止まるんですね。
モーダルダイアログだとsetVisible(true)すると
setVisible(false)かdisponse()するまで処理が止まるんですね。
2012/01/12(木) 00:52:54.57
http://pastebin.com/4qH6Adke
上記のようなTableTest.javaというjavaのソースファイルを実行すると、
下図のように、表の部分にマダマダ余白があるにも関わらずスクロールバーが現れてしまうUIとなってしまいます
http://uproda.2ch-library.com/475736Up9/lib475736.jpg
このレイアウトで余白がなくなるまでスクロールバーが表示されないようにするにはどうすれば良いでしょうか?
また、初心者なので他に変な所があれば指摘頂けるとありがたいです
上記のようなTableTest.javaというjavaのソースファイルを実行すると、
下図のように、表の部分にマダマダ余白があるにも関わらずスクロールバーが現れてしまうUIとなってしまいます
http://uproda.2ch-library.com/475736Up9/lib475736.jpg
このレイアウトで余白がなくなるまでスクロールバーが表示されないようにするにはどうすれば良いでしょうか?
また、初心者なので他に変な所があれば指摘頂けるとありがたいです
2012/01/12(木) 22:42:06.88
>>81
35,36行目、JSplitPaneにつっこむところのJScrollPaneを消す。
35,36行目、JSplitPaneにつっこむところのJScrollPaneを消す。
84デフォルトの名無しさん
2012/01/15(日) 22:32:04.55 JTableの選択モードで
・クリックしたセルを含む行全体を選択(ハイライト)
・同時に選択できる行は1行のみ
のようにするにはどう選択モードを設定すればよいですか?
・クリックしたセルを含む行全体を選択(ハイライト)
・同時に選択できる行は1行のみ
のようにするにはどう選択モードを設定すればよいですか?
2012/01/19(木) 08:36:19.94
JTable table;
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setCellSelectionEnabled(false);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setCellSelectionEnabled(false);
86デフォルトの名無しさん
2012/01/20(金) 20:37:51.11 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)
・・・・
↓を参考に作成しましたが、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)
・・・・
2012/01/24(火) 01:22:12.63
ポップアップメニューで選択されたのをトリガーとして
なにか重い処理を行う場合(サンプルコードのdoSomethingメソッドのような)、
ポップアップメニューが表示されたまま、画面が固まったようになってしまいます。
画面が固まるのは仕方ないとして、別処理の前にポップアップメニューを
非表示にすることはできないのでしょうか。よろしくお願いします。
サンプルコードは以下です
http://ideone.com/zIVRZ
なにか重い処理を行う場合(サンプルコードのdoSomethingメソッドのような)、
ポップアップメニューが表示されたまま、画面が固まったようになってしまいます。
画面が固まるのは仕方ないとして、別処理の前にポップアップメニューを
非表示にすることはできないのでしょうか。よろしくお願いします。
サンプルコードは以下です
http://ideone.com/zIVRZ
2012/01/24(火) 18:55:30.08
2012/02/03(金) 11:38:07.78
http://uproda.2ch-library.com/484203UfN/lib484203.png
Windows環境(XP/7)の文字入力で変換候補ウィンドウが入力文字に重なってしまうのを、
重ならない様に表示する方法があれば教えてください。
AWTでの表示のようになって欲しいです。
Windows環境(XP/7)の文字入力で変換候補ウィンドウが入力文字に重なってしまうのを、
重ならない様に表示する方法があれば教えてください。
AWTでの表示のようになって欲しいです。
2012/02/03(金) 15:03:24.45
>>89
Sunの実装が手抜きで未確定文字左下のx,yしかwindowsに送ってないのが原因だから、
Java側からじゃどうしようもないと思う。
BugDatabase行くか、Swing使うの諦めるか、我慢するか。
Sunの実装が手抜きで未確定文字左下のx,yしかwindowsに送ってないのが原因だから、
Java側からじゃどうしようもないと思う。
BugDatabase行くか、Swing使うの諦めるか、我慢するか。
2012/02/03(金) 15:53:25.38
どうしようもないですか…
分かりました、ありがとうございました。
分かりました、ありがとうございました。
2012/02/19(日) 10:56:26.50
GUIスレッドとファイル・通信を行う2つスレッドのがあります。
ファイル・通信を行うスレッドでイベントを発生させて、GUIスレッドでイベントをキャッチしたいのです。
どのようにすればイベントを発生させることができますか
ファイル・通信を行うスレッドでイベントを発生させて、GUIスレッドでイベントをキャッチしたいのです。
どのようにすればイベントを発生させることができますか
2012/02/20(月) 10:52:32.50
SwingUtilities.invokeLater
2012/03/02(金) 14:18:11.33
あるウインドウ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のデータを更新して表示する方法があるのかわかりません。
お教えいただきたくお願いします。
大きさの現在値を表示したいのですが、設定パネルBを生成するのがウインドウAのコンストラクタ内
(Aの部品のメニューにaddActionListener()を設定して,その中でnew ActionListener(),
さらにその中でactionPerformed(ActionEvent)として,その中で new B() を呼ぶ)
なので,Aへの参照をBのコンストラクタに引数で渡して B(A instanceOfA) のようにしても
instanceOfAには常にnullしか入っていません。(つまりAのコンストラクタが完了して完全にAを
生成した状態になる前の時点でB(A)を呼び出してしまっているのだと思います)
こういうときSwingではどういうふうにするのが常套手段なんでしょうか?
Aのコンストラクタ内以外でBのデータを更新して表示する方法があるのかわかりません。
お教えいただきたくお願いします。
2012/03/02(金) 15:03:46.87
どうみてもメニューが押されて初めてBが生成されてるようにしか読めないのだが。
Bのコンストラクタにthisを渡したらthisがnullだったわけ?
Bのコンストラクタにthisを渡したらthisがnullだったわけ?
2012/03/02(金) 15:24:30.23
>>95
そうれす。
この場合のthisはAなんだけど、Bのコンストラクタを呼び出すのがAのコンストラクタの内部だから
Aがまだ生成されていないのでthisはまだnullのままなんだと思う。
JavaはそこそこやってるんだけどSwingは最近始めたばかりなので感覚がわからん。
ウインドウA への参照を aRoot として取得できるかと思って B を生成するメニュー項目 menuItemB を使い
final JFrame aRoot = (JFrame) SwingUtilities.getRoot(menuItemB);
みたいなのをイベント発生前に入れてみても、所詮 A のコンストラクタ内なのでaRoot==nullなんだな。
目的とする処理はありがちなので常套手段があるんだと思う。引き続きお願いします。
そうれす。
この場合のthisはAなんだけど、Bのコンストラクタを呼び出すのがAのコンストラクタの内部だから
Aがまだ生成されていないのでthisはまだnullのままなんだと思う。
JavaはそこそこやってるんだけどSwingは最近始めたばかりなので感覚がわからん。
ウインドウA への参照を aRoot として取得できるかと思って B を生成するメニュー項目 menuItemB を使い
final JFrame aRoot = (JFrame) SwingUtilities.getRoot(menuItemB);
みたいなのをイベント発生前に入れてみても、所詮 A のコンストラクタ内なのでaRoot==nullなんだな。
目的とする処理はありがちなので常套手段があるんだと思う。引き続きお願いします。
2012/03/02(金) 15:52:33.69
こちらこそヨロシクお願いします
2012/03/02(金) 16:00:44.75
this 自身はたとえコンストラクタの中でも null にならないよ!
きっと何か勘違いしてるよ!
本当にコンストラクタのせいだと思うならコンストラクタであれこれ初期化するのをやめればいいだけじゃない!
init メソッドとか別に作ってそこで色々やればいいと思うよ!
きっと何か勘違いしてるよ!
本当にコンストラクタのせいだと思うならコンストラクタであれこれ初期化するのをやめればいいだけじゃない!
init メソッドとか別に作ってそこで色々やればいいと思うよ!
2012/03/02(金) 16:05:09.38
内部クラスでのthis参照は色々と落とし穴があるので要注意。
解らなかったらとりあえず内部クラス使うのやめてみよう。
いや、thisがnullとかありえないから。
解らなかったらとりあえず内部クラス使うのやめてみよう。
いや、thisがnullとかありえないから。
100デフォルトの名無しさん
2012/03/02(金) 16:28:55.75 >>98>>99ついでに>>97
確認のために内部クラスを使わずに単純なクラスA,Bを作り、Aのコンストラクタ内部で
BのコンストラクタB(A)を呼び出してみましたが,たしかにAには非null値がちゃんと渡されていました。
>>99さんのご指摘のとおり、やはり内部クラスからのthis参照がまずいようです。
>>98さんのご指摘のようにコンストラクタ以外のinit()メソッドのようなものを作って呼び出したいのですが
どのタイミングで呼び出せば良いかがわかりません。
「パネルBを開いた」というのを、Bのコンストラクタでもなく、actionPerformed()ブロックの中でもなく
呼び出すには、Swingではどのようなからくりを使うんでしょう?初心者でサーセン。
確認のために内部クラスを使わずに単純なクラスA,Bを作り、Aのコンストラクタ内部で
BのコンストラクタB(A)を呼び出してみましたが,たしかにAには非null値がちゃんと渡されていました。
>>99さんのご指摘のとおり、やはり内部クラスからのthis参照がまずいようです。
>>98さんのご指摘のようにコンストラクタ以外のinit()メソッドのようなものを作って呼び出したいのですが
どのタイミングで呼び出せば良いかがわかりません。
「パネルBを開いた」というのを、Bのコンストラクタでもなく、actionPerformed()ブロックの中でもなく
呼び出すには、Swingではどのようなからくりを使うんでしょう?初心者でサーセン。
101デフォルトの名無しさん
2012/03/02(金) 16:33:10.64102デフォルトの名無しさん
2012/03/05(月) 10:03:36.04 A() {
JMenu menu;
menu.addActionListener(new ActionListener() {
actionPerformed(ActionEvent event) {
B b = new B(this);
}
});
}
ということ?(上はかなりてきとーだけど)
上の場合の this は A ではなくて、無名クラスのですよ。
下のようにすれば、望みどおりいくような気がします。
見当違いでないとよいのですが。
A() {
JMenu menu;
menu.addActionListener(new ActionListener() {
actionPerformed(ActionEvent event) {
createB();
}
});
}
private void createB() {
B b = new B(this);
}
JMenu menu;
menu.addActionListener(new ActionListener() {
actionPerformed(ActionEvent event) {
B b = new B(this);
}
});
}
ということ?(上はかなりてきとーだけど)
上の場合の this は A ではなくて、無名クラスのですよ。
下のようにすれば、望みどおりいくような気がします。
見当違いでないとよいのですが。
A() {
JMenu menu;
menu.addActionListener(new ActionListener() {
actionPerformed(ActionEvent event) {
createB();
}
});
}
private void createB() {
B b = new B(this);
}
103デフォルトの名無しさん
2012/03/05(月) 11:53:37.70 eclipseスレから誘導されてきました
Eclipse + WindowBuilderでGUIを作って
フォームにButtonnとLabelを置いて、Buttonをダブルクリックして自動的に開いたソースコードの部分に
labelのテキストをSetText("変更しました")って変更したいんですけどlabelのオブジェクトにアクセスできないわけなんです
どうやってlabelにアクセスするのでしょうか?
Eclipse + WindowBuilderでGUIを作って
フォームにButtonnとLabelを置いて、Buttonをダブルクリックして自動的に開いたソースコードの部分に
labelのテキストをSetText("変更しました")って変更したいんですけどlabelのオブジェクトにアクセスできないわけなんです
どうやってlabelにアクセスするのでしょうか?
104デフォルトの名無しさん
2012/03/05(月) 12:14:48.43 >>103
誘導されたとはいえ、いくら何でもひどい。
Eclipseスレで「JavaのSwingの基礎知識をググってから 」ってところを何もしてないのがバレバレ。
Javaがある程度理解できるなら、ダブルクリックで表示されたソースを見ただけで
labelのインスタンスがわかるはず。
誘導されたとはいえ、いくら何でもひどい。
Eclipseスレで「JavaのSwingの基礎知識をググってから 」ってところを何もしてないのがバレバレ。
Javaがある程度理解できるなら、ダブルクリックで表示されたソースを見ただけで
labelのインスタンスがわかるはず。
105デフォルトの名無しさん
2012/03/05(月) 12:25:03.45 まーた中級者が初心者いじめしてるよ
106デフォルトの名無しさん
2012/03/05(月) 13:03:57.19 じゃぁ答えてやれよw
107デフォルトの名無しさん
2012/03/05(月) 21:43:10.51 そういやJava初心者スレってないんだな。
宿題丸投げスレが該当すんのかな
宿題丸投げスレが該当すんのかな
108デフォルトの名無しさん
2012/03/06(火) 00:22:22.92 >>107 いやあのスレは初心者スレだから。分けてもしょうがない。
109デフォルトの名無しさん
2012/03/06(火) 03:01:43.43 会話が成立していないぞ
110デフォルトの名無しさん
2012/03/06(火) 03:04:39.29 388 名前:デフォルトの名無しさん 投稿日:2012/03/05(月) 23:21:06.19
誰か初心者スレ立てろ
389 名前:デフォルトの名無しさん 投稿日:2012/03/05(月) 23:23:41.72
いらねえよ
http://toro.2ch.net/test/read.cgi/tech/1329715551/388-389 ★★Java質問・相談スレッド152★★
誰か初心者スレ立てろ
389 名前:デフォルトの名無しさん 投稿日:2012/03/05(月) 23:23:41.72
いらねえよ
http://toro.2ch.net/test/read.cgi/tech/1329715551/388-389 ★★Java質問・相談スレッド152★★
11194
2012/03/06(火) 14:09:03.26 >>102 さまはじめみなさま どうもありがとうございました。やりたかったのは次のようなことでした。
public class FrameA extends JFrame
{
final JFrame frameA = this; //これで期待通り動いた[PPP]
JMenuItem menuItemForB = new JMenuItem();
menuItemForB.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
panelB = new PanelB(frameA); //[QQQ]
}
}
);
}
public class PanelB extends JPanel
{
public PanelB(FrameA frameA) //frameAの参照を引数で渡す[RRR]
{
//ここから frameA を操作するために frameA を参照する
}
}
[PPP] のように単純に FrameA の this を取って [QQQ] [RRR] のように引数で渡したところ期待通り
PanelB の内部から frameA を参照して操作できるようになりました。動かなかった原因は [PPP] の
this のかわりに>>96に書いたaRootを使っていたことでした。これでOKですが、もし [RRR]のように
引数で親の参照を渡すのより良い方法がSwingプログラムの常套手段にあるようならお教えください。
public class FrameA extends JFrame
{
final JFrame frameA = this; //これで期待通り動いた[PPP]
JMenuItem menuItemForB = new JMenuItem();
menuItemForB.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
panelB = new PanelB(frameA); //[QQQ]
}
}
);
}
public class PanelB extends JPanel
{
public PanelB(FrameA frameA) //frameAの参照を引数で渡す[RRR]
{
//ここから frameA を操作するために frameA を参照する
}
}
[PPP] のように単純に FrameA の this を取って [QQQ] [RRR] のように引数で渡したところ期待通り
PanelB の内部から frameA を参照して操作できるようになりました。動かなかった原因は [PPP] の
this のかわりに>>96に書いたaRootを使っていたことでした。これでOKですが、もし [RRR]のように
引数で親の参照を渡すのより良い方法がSwingプログラムの常套手段にあるようならお教えください。
112デフォルトの名無しさん
2012/03/06(火) 14:26:22.68 ない
113デフォルトの名無しさん
2012/03/06(火) 15:56:14.06 PanelBが内部クラスならできるよ
public class FrameA extends JFrame
{
JMenuItem menuItemForB = new JMenuItem();
public FrameA(){
menuItemForB.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
panelB = new PanelB(){
}
}
);
}
public class PanelB extends JPanel
{
public PanelB() //frameAの参照を引数で渡す[RRR]
{
//FrameA.thisで呼ぶ
}
}
}
public class FrameA extends JFrame
{
JMenuItem menuItemForB = new JMenuItem();
public FrameA(){
menuItemForB.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
panelB = new PanelB(){
}
}
);
}
public class PanelB extends JPanel
{
public PanelB() //frameAの参照を引数で渡す[RRR]
{
//FrameA.thisで呼ぶ
}
}
}
11494
2012/03/06(火) 16:20:38.22115デフォルトの名無しさん
2012/03/06(火) 17:03:13.13 単に
public class FrameA extends JFrame
{
JMenuItem menuItemForB = new JMenuItem();
menuItemForB.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
panelB = new PanelB(FrameA.this);
}
}
);
}
は?
public class FrameA extends JFrame
{
JMenuItem menuItemForB = new JMenuItem();
menuItemForB.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
panelB = new PanelB(FrameA.this);
}
}
);
}
は?
11694
2012/03/06(火) 17:45:57.392012/04/05(木) 17:18:43.81
JFrame をマウスでドラッグして移動するイベントを取得するにはどのようにするのが
定石なんでしょうか?以下のような構造のコードを書いてみましたが、タイトルバーの下の
本体領域の内部では[A][B]の処理が行われるものの、本来の目的である JFrame 全体の
ドラッグは検知しないようです。HierarchyBoundsListener() を使えば JFrame 移動の
イベントを取得できましたが、マウスのドラッグ以外による移動まで検知してしまうので
できれば使いたくありません。簡単な方法がありましたらお教えいただきたくお願いします。
public class Test
extends JFrame
implements MouseMotionListener
{
public Test()
{
...
addMouseMotionListener(this);
}
public void mouseDragged(MouseEvent e) { ... } //[A]
public void mouseMoved(MouseEvent e) { ... } //[B]
}
定石なんでしょうか?以下のような構造のコードを書いてみましたが、タイトルバーの下の
本体領域の内部では[A][B]の処理が行われるものの、本来の目的である JFrame 全体の
ドラッグは検知しないようです。HierarchyBoundsListener() を使えば JFrame 移動の
イベントを取得できましたが、マウスのドラッグ以外による移動まで検知してしまうので
できれば使いたくありません。簡単な方法がありましたらお教えいただきたくお願いします。
public class Test
extends JFrame
implements MouseMotionListener
{
public Test()
{
...
addMouseMotionListener(this);
}
public void mouseDragged(MouseEvent e) { ... } //[A]
public void mouseMoved(MouseEvent e) { ... } //[B]
}
2012/04/06(金) 18:51:29.84
>>117 で質問したものです。挙動がおかしかったのはマルチディスプレイ・
マルチワークスペースという少し特殊な環境でテストしていたからのようで、
普通の単一スクリーン上でテストしたところ期待通り動いていました。
現在 HyerarchyBoundsListenerを使っていますが、ComponentListener の
componentMoved() でも良さそうです。マルチ・ワークスペースに対応する
ように修正することにします。うまくいかなかったらまた質問させてください。
マルチワークスペースという少し特殊な環境でテストしていたからのようで、
普通の単一スクリーン上でテストしたところ期待通り動いていました。
現在 HyerarchyBoundsListenerを使っていますが、ComponentListener の
componentMoved() でも良さそうです。マルチ・ワークスペースに対応する
ように修正することにします。うまくいかなかったらまた質問させてください。
2012/04/07(土) 16:01:05.53
http://orablogs-jp.blogspot.jp/2012/02/mpeg-4-multimedia-support-in-javafx.html
2012年2月10日
[JavaFX] MPEG-4 multimedia support in JavaFX
JavaFX 2.1で、H.264/AVCビデオとAdvanced Audio Coding (AAC)オーディオを含むMPEG-4マルチメディアコンテナフォーマットで格納されているデジタルメディアの再生をサポートしました。
この新しい機能は、JavaFXのサポートされているすべてのOS(Mac OS X、Linux、Windows XPとVista (32bit) 、およびWindows 7 (32/64bit)を含む)全体で動作します。
実際のオーディオおよびビデオのデコーディングは、OS固有のメディアエンジンに依存していますが、
JavaFXのメディアフレームワークは、これらのネイティブエンジンでサポートされているすべてのマルチメディアコンテナフォーマットと、メディアのエンコーディングを処理しようとしているわけではありません。
(*) JavaFX 2.0は既に以下のメディアフォーマットをサポートしています。
音声:MP3、非圧縮PCMを含むAIFF、非圧縮PCMを含むWAV
動画:VP6ビデオを含むFLV、MP3オーディオ
2012年2月10日
[JavaFX] MPEG-4 multimedia support in JavaFX
JavaFX 2.1で、H.264/AVCビデオとAdvanced Audio Coding (AAC)オーディオを含むMPEG-4マルチメディアコンテナフォーマットで格納されているデジタルメディアの再生をサポートしました。
この新しい機能は、JavaFXのサポートされているすべてのOS(Mac OS X、Linux、Windows XPとVista (32bit) 、およびWindows 7 (32/64bit)を含む)全体で動作します。
実際のオーディオおよびビデオのデコーディングは、OS固有のメディアエンジンに依存していますが、
JavaFXのメディアフレームワークは、これらのネイティブエンジンでサポートされているすべてのマルチメディアコンテナフォーマットと、メディアのエンコーディングを処理しようとしているわけではありません。
(*) JavaFX 2.0は既に以下のメディアフォーマットをサポートしています。
音声:MP3、非圧縮PCMを含むAIFF、非圧縮PCMを含むWAV
動画:VP6ビデオを含むFLV、MP3オーディオ
120デフォルトの名無しさん
2012/05/13(日) 07:58:23.99 日経ソフトウェアの2011年9月号に載ってた
Android用の静止画をモザイク処理するプログラムを
PC用のJava SEにJavaの部分とJNIを使ったC言語の部分だけ移植してみたんだが
64bit版のJava SEと32bit版のJavaSEでかなり性能が違うな
計測に使ったOSは64bit版Windows 7 SP1でCコンパイラはWindows SDKのを使用
CPUはCeleron G530定格
初回実行時 2回目実行時
java C言語 java C言語
32bit 36ミリ秒 16ミリ秒 29ミリ秒 16ミリ秒
64bit 25ミリ秒 12ミリ秒 8ミリ秒 12ミリ秒
64bit版のJava SEは-versionでバージョン表示するとJava HotSpot(TM) 64-Bit Server VM、
32bit版のJava SEは-versionでバージョン表示するとJava HotSpot(TM) Client VMと出ますが
1度実行した部分の実行速度がかなり違うようです
Android用の静止画をモザイク処理するプログラムを
PC用のJava SEにJavaの部分とJNIを使ったC言語の部分だけ移植してみたんだが
64bit版のJava SEと32bit版のJavaSEでかなり性能が違うな
計測に使ったOSは64bit版Windows 7 SP1でCコンパイラはWindows SDKのを使用
CPUはCeleron G530定格
初回実行時 2回目実行時
java C言語 java C言語
32bit 36ミリ秒 16ミリ秒 29ミリ秒 16ミリ秒
64bit 25ミリ秒 12ミリ秒 8ミリ秒 12ミリ秒
64bit版のJava SEは-versionでバージョン表示するとJava HotSpot(TM) 64-Bit Server VM、
32bit版のJava SEは-versionでバージョン表示するとJava HotSpot(TM) Client VMと出ますが
1度実行した部分の実行速度がかなり違うようです
121デフォルトの名無しさん
2012/05/13(日) 08:44:11.60 もっと大きい静止画(4000x4000ピクセル)で試してみた
初回実行時 2回目以降実行時
java C言語 java C言語
32bit 274ミリ秒 133ミリ秒 244ミリ秒 133ミリ秒
64bit 87ミリ秒 100ミリ秒 65ミリ秒 100ミリ秒
初回実行時 2回目以降実行時
java C言語 java C言語
32bit 274ミリ秒 133ミリ秒 244ミリ秒 133ミリ秒
64bit 87ミリ秒 100ミリ秒 65ミリ秒 100ミリ秒
122デフォルトの名無しさん
2012/05/13(日) 13:41:17.35 マイナーアップデート毎にもデフォルトで有効になってる最適化オプション違うんでjreのバージョンも書いてくれ。
レスを投稿する
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 【高市会談】 長年、日本初の女性首相を目指し争った 百合子と早苗「国と都の補正予算で連携するわよ!」 首相官邸で初会談 [485983549]
- 【高市賃上げ】 自民党&維新の会「国会議員の給与を 月5万円アップさせる!」 今国会で歳費法改正。 月129万円→月134万円に [485983549]
- 犯罪者たち「刑事罰受けて罪は償った!被害者への賠償金?もう反省済みだから一円も払わねーよばーかwww」 [177178129]
- 【高市副首都】 維新「副首都は人口200万人を超える都市と条件を付けろ! 福岡と札幌を除外だ!」 ※残るのは横浜、名古屋、大阪のみ [485983549]
- ㊗157円 [194819832]
- 瑛太の父、首吊り自殺
