Java標準低速GUI 6 AWT/Swing
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2007/09/26(水) 20:51:18しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
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
0883デフォルトの名無しさん
2008/01/18(金) 00:15:590884デフォルトの名無しさん
2008/01/18(金) 00:23:11D言語1.0がまったく普及しない原因がそれと言われてるし。
0885デフォルトの名無しさん
2008/01/18(金) 00:29:11標準ライブラリがしっかりしてれば
Javaは生まれなかったかも知れない
0886デフォルトの名無しさん
2008/01/18(金) 00:30:48CPANのおかげと言っても過言ではない死ね
0887デフォルトの名無しさん
2008/01/18(金) 00:36:140888デフォルトの名無しさん
2008/01/18(金) 03:53:190889デフォルトの名無しさん
2008/01/18(金) 08:12:32人を否定するなら代替の主張を出してからにしたら?
0890デフォルトの名無しさん
2008/01/18(金) 14:17:410891デフォルトの名無しさん
2008/01/18(金) 19:29:510892デフォルトの名無しさん
2008/01/18(金) 19:37:12次の話題どうぞ
↓↓↓
0893デフォルトの名無しさん
2008/01/18(金) 19:38:570894デフォルトの名無しさん
2008/01/18(金) 19:55:060895デフォルトの名無しさん
2008/01/18(金) 20:11:160896デフォルトの名無しさん
2008/01/18(金) 20:52:290897デフォルトの名無しさん
2008/01/18(金) 21:04:190898デフォルトの名無しさん
2008/01/18(金) 21:36:21>>865の脳内ではメディア再生ライブラリがGUIツールキットなんだよ。
0899デフォルトの名無しさん
2008/01/18(金) 21:51:430900デフォルトの名無しさん
2008/01/18(金) 22:57:52http://pc11.2ch.net/test/read.cgi/tech/1033703640/
0901デフォルトの名無しさん
2008/01/18(金) 23:25:19むしろGLCanvasとかGLJPanelとかAWTとSwingの外部コンポーネントと考えれるからこっちだろと
シンプルに描画だけのOpenGLの実装だからユーザーに全ての描画を任せるタイプで
フルスタックで重いJava3Dとはかなり違う
0902デフォルトの名無しさん
2008/01/18(金) 23:44:310903デフォルトの名無しさん
2008/01/19(土) 00:32:48でもGLCanvasの挙動とかどうかんがえてもむこうの範疇ではないと思うんだが
0904デフォルトの名無しさん
2008/01/19(土) 00:49:500905デフォルトの名無しさん
2008/01/19(土) 02:38:130906デフォルトの名無しさん
2008/01/19(土) 14:52:450907デフォルトの名無しさん
2008/01/19(土) 14:57:230908デフォルトの名無しさん
2008/01/19(土) 14:58:040909デフォルトの名無しさん
2008/01/19(土) 15:00:190910デフォルトの名無しさん
2008/01/19(土) 15:06:22フヌケw
0911デフォルトの名無しさん
2008/01/19(土) 15:09:120912デフォルトの名無しさん
2008/01/19(土) 15:17:480913デフォルトの名無しさん
2008/01/19(土) 15:20:320914デフォルトの名無しさん
2008/01/19(土) 21:24:53ライセンス読むと良いよ。
たしかRuntimeと同じ特例が適用されてたと思う。
0915デフォルトの名無しさん
2008/01/25(金) 17:18:55JMFとJOGLは需要ありそうというか隔離しないと他で暴れるバカが出てきそうだけど。
JAIは実際に使ってるの見たことないな。
Java Media APIスレ立てたら誘導用くらいには機能するかね?
0916デフォルトの名無しさん
2008/01/25(金) 18:02:09JMFはあってもよさそうなもんだなぁ…
JOGLは…どの程度使われてるんだろ…?
0917デフォルトの名無しさん
2008/01/25(金) 18:18:28・Java Media Framework (JMF)
・Java Sound API
・Java 3D
・Java Binding for OpenGL(JOGL)
・Java Advanced Imaging(JAI)
・Java Image I/O
・Java 2D
・Java Speech API
・Java Telephony API(JTAPI)
JMFとJava Advanced Imaging、Java Image I/O
、Java 2DはAWT/Swingコンポーネント関係ないなら分けた方が良いと思うんだけどな。
0918デフォルトの名無しさん
2008/01/25(金) 18:23:03知名度JMF>JOGL
日本語リソースの多さJMF>JOGL
じゃない?
javaでゲームつくるとなるとJOGLは欠かせないけど、なきゃないでJava2Dで十分って感じ。
ゲ制のJavaでゲームつくるスレが落ちたからJOGL聞く場所がないんだよ。
0919デフォルトの名無しさん
2008/01/25(金) 18:31:48javaでゲームつくるとなるとJOGLがほしい、ってのはわかるんだけど…
そもそもPC向けゲームをつくるのにjavaを選ぶ理由がないよなぁとか思うわけですよ?
その手のゲームって結構あるものなの?
0920デフォルトの名無しさん
2008/01/25(金) 18:32:44まぁバグも多いけど。
0921デフォルトの名無しさん
2008/01/25(金) 18:32:58ところでJMFとJOGLって比較するもんなのか…?
0922デフォルトの名無しさん
2008/01/25(金) 18:42:12需要的に考えると全部まとめて Java Media API スレとかでもいい気がするな。
0923デフォルトの名無しさん
2008/01/25(金) 18:48:580924デフォルトの名無しさん
2008/01/25(金) 18:57:23あとjavaでゲームつくるってのはかなり居る。
日本でもググレば出てくるし、海外はJOGL,JInput,JOALはセットでゲームつくるときに使う。
ただ、リソースは海外の方が多い。
だから日本語のリソースがないから英語読めないと何も出来ネ!ってなる。
俺も需要的にJava Media APIsで統一してスレ立てても良いと思うんだが・・・誘導・隔離用にw
IIOとかJava soundはアプリケーションプログラマが直接いじる所って少ないしさ。
0925デフォルトの名無しさん
2008/01/25(金) 20:08:130926デフォルトの名無しさん
2008/01/25(金) 20:22:48根拠はJava 7に登場のJava Kernel、JAM、JavaFXあたり。これらは要チェック。
Java Sound本、最近でたね。つい衝動買いしたけど、まだ読んでなかったり。
0927デフォルトの名無しさん
2008/01/25(金) 20:29:260928デフォルトの名無しさん
2008/01/25(金) 23:12:41つまり人柱。日本語のページも全然ないし。
あまり勧めたくはないけど、もしゲームで、かつwindowsなら、C#じゃないか?
0929デフォルトの名無しさん
2008/01/25(金) 23:26:441コア丸々使ってる箱○なら別だが
0930デフォルトの名無しさん
2008/01/26(土) 22:12:41ttp://pc11.2ch.net/test/read.cgi/tech/1201346803/l50
スレ立てられなかったのでスレ立て依頼出してたのが立った。
今後はこちらでどうぞ。
スレタイには一番使われそうなJMFとJOGLを追加しといた。
ほかテンプレあれば書いて。
Java Media APIsはDesktop Javaの一部なんでJava SE以外のエディションやAndroidは関連スレから除外しといた。
ネイティブ依存なSWTも同様。
0931デフォルトの名無しさん
2008/02/06(水) 00:48:210932デフォルトの名無しさん
2008/02/07(木) 21:21:18親コンテナ.remove(comp) / 親コンテナ.add(comp, index) もしくは
getComponentZOrder(comp) / setComponentZOrder(comp, index)
の組み合わせしか方法はありませんか?
Component のほうが、自立的に一歩前進、とか、一歩後退、みたいな仕掛け、ありませんかね…?
たとえば、大、小の円がそれぞれ component だったとして、
それを、drag で、重ねたときに、◎になるようにするしたいんですが。
(2つに限らず、3つ、4つでもいけるように)
getComponents してループさせて入れ替え、しかないでしょうか。
0933デフォルトの名無しさん
2008/02/07(木) 21:49:590934932
2008/02/07(木) 22:13:16おぉ、JLayeredPane、忘れてましたw
duke 君のデモソースはチェックしたのに、なにしてんだ>自分
そういう Pane がある、ということは裏を返すと Container/Component
には、あまり気の利いた順序変更の手段はないんですかね。
ひきつづき、つっこみ・ご意見お待ちしております。
0935デフォルトの名無しさん
2008/02/07(木) 22:38:09それが必要なパターンが想像できないんだが。
0936デフォルトの名無しさん
2008/02/07(木) 22:52:220937932
2008/02/07(木) 23:03:27>>935
ビジネスアプリケーションじゃなくて、えと・・・
ゲームでキャラが重なる、みたいなヤツを思い浮かべてください。
>>936
CardLayoutは、ノーチェックでした。
リファレンスをチェックしてきますノシ
0938デフォルトの名無しさん
2008/02/07(木) 23:06:39ゲームのようなやつならSwingつかわずにJava2D等で描画したほうがいいよ
速度的にもメリットが薄い
0939デフォルトの名無しさん
2008/02/07(木) 23:41:33Java2DよりJOGLの方がry
0940デフォルトの名無しさん
2008/02/07(木) 23:43:460941932
2008/02/07(木) 23:46:41CardLayout、あとは自分で動作とか確認しますが、リファレンス曰く、
「コンテナ内の各コンポーネントをカードとして扱います。一度に 1 枚のカードだけを表示し…」
う、1枚では困るぅ〜。
>>938
Java2D にそんなに詳しくないのですが、
ゲームのキャラでなく、(バーチャル環境の)アバターみたいのヤツを
前後(奥行き)に操作する、といったような例だとどうでしょうか。
イメージのまま取り回すのは管理が大変かなぁ、とビビッているのですが…。
設計次第ですかねぇ。
速度の要望はそんなにシビアでないです。
0942デフォルトの名無しさん
2008/02/08(金) 00:11:39違うAWT、Swing,Java2Dは同じ層にあるUser InterFace Toolkits。
AWTはAWT,SwingはSwing,Java2DはJava MediaのAPI。
そもそもAWTは重量WindowToolkitでSwingはJava2Dを使った軽量WindowToolkitだろ。
Java2Dは2D描画ライブラリ。
javadoc嫁。
0943デフォルトの名無しさん
2008/02/08(金) 00:23:42JOGLいいけど、テクスチャを単純に表示するのが目的ならそこまで必要ないと思う
プラットフォームによってパッケージが違うのもやっかいだし、Line引くときたぶんはまる
Java2Dはαブレンディングがまともに実装されていないのがきついかな
おかげでゲームで使うときはJOGL必須だ
>>941
その動かすキャラクターの動く範囲は?
Window内をじゆうじざいにということでないのなら、
その描画はJava2Dによる重ね合わせのほうが難易度は低いと思う
0944デフォルトの名無しさん
2008/02/08(金) 00:38:19JOGL1.1ならcom.sun.opengl.util.j2dが追加されたから
BufferStrategyと同じ感覚で使えるんだけどcom.sunパッケージは嫌い?
0945デフォルトの名無しさん
2008/02/08(金) 02:07:081.JFrameのgetLayeredPane()に直接JLabelとか貼り付けて遊んでた。
2.この状態で、ポップアップメニュー出したら、表示されなかった。
3.マウスをずるずる動かして、見えないメニューの上を通過させるとメニューが表示された。
※メニューが「パッ」と全部表示されるんじゃなくて、
マウスが乗っかったメニューアイテムが1つずつ表示される。
4.JLabelを乗せるレイヤーを変えても問題は解決しなかった。
そもそも1.の使い方がナンセンスなのか。
レイヤードペインとポップアップは気をつける何かがあるのか。
誰か知ってる人がいたら教えてください。
0946デフォルトの名無しさん
2008/02/08(金) 04:07:330947デフォルトの名無しさん
2008/02/08(金) 08:21:43GlassPane?
0948デフォルトの名無しさん
2008/02/08(金) 09:58:10とりあえず、LayeredPane を導入してみますデス。
もう一個、教えてくんです・・・。
contains(int x, int y) メソッドって、
リスナーにしなくても mouseEntered なとき(Component 上に
マウスカーソルがあると)、勝手に呼ばれるようですが、
それでよいです??? Documented な仕様ですか?
override して使わないほうがよさそうですよね。override しちゃだめ?
だったら final にして〜〜。
0949デフォルトの名無しさん
2008/02/08(金) 18:15:56描画される順番の問題。
GlassPaneは自分で描画しない限り何もない。
GlassPaneでイベント握り潰せば結果的にGUIをブロックできる。
0950デフォルトの名無しさん
2008/02/08(金) 18:21:08layeredPane の POPUP_LAYER じゃない?
0951945
2008/02/09(土) 00:25:29JLabelにアニメーションGIFを表示させた場合、
絵が書き換わるたびに、マウスずらしで表示させた
ポップアップメニューが消されたw
・JLabelに文字を表示させた場合
・普通にコンテンツペインにJLabelを置いた場合
この状態での実験も。。。今度やってみる
0952デフォルトの名無しさん
2008/02/09(土) 11:06:140953デフォルトの名無しさん
2008/02/09(土) 11:47:180954デフォルトの名無しさん
2008/02/09(土) 11:59:19バグ-かろう
バグ-かった
バグ-くない
バグ-い
バグ-ければ
0955948
2008/02/09(土) 13:01:03気がついたのは、
より上位の Layer のコンポーネントが、より下位のコンポーネントを
完全に覆い隠すと(感覚的にいうと lower.getBounds() < upper.getBounds())
のとき下位のコンポーネントが描画されない(消える)
つーことがありました。
理屈としては、そのほうが、高速化が図れるのかもしれないけど、
上位の矩形のイメージが透明化されてるときちょっと困るんだけどなぁ。
0956デフォルトの名無しさん
2008/02/09(土) 13:38:19上位レイヤのコンポーネントでsetOpaque(false)でどう?
0957デフォルトの名無しさん
2008/02/09(土) 13:41:410958948
2008/02/09(土) 15:38:21レス、どうもです。
setOpaque() してると思うんですが、今日は、職場でないので
確認できないっす。火曜日にチェックします!
みなさんは休出っすか?
0959デフォルトの名無しさん
2008/02/09(土) 15:41:040960デフォルトの名無しさん
2008/02/09(土) 18:30:570961945
2008/02/10(日) 03:09:13それはともかく、>>952さんありがとうございます。
ポップアップでまくりですよ。
そして、実験の報告。
>・JLabelに文字を表示させた場合
結果:×
レイヤードペインに文字ばっかりのJLabelを乗せてみた。
文字の後ろにメニューがでた。文字の隙間からメニューが見えてるw
マウス動かすと文字の前に来るあたりの挙動は一緒。
>・普通にコンテンツペインにJLabelを置いた場合
結果:○
当たり前か。
0962デフォルトの名無しさん
2008/02/13(水) 19:28:37同様のアクションをJPopupMenuにも加えたいのですが、どのようにすればよいでしょうか?
CTRL C, CTRL Vではうまくいくのですが、JPopupMenuからアクションを行うと、ソースが変わってしまいだめなようなのです。
TransferHandlerのcopyのアクションのコードを見てみると、アクションソースがJComponentのインスタンスでなければ弾いているのが原因のようです。
そこで
// a:TransferHandlerのアクション
private Action createAnotherSourceAction(final Action a,final Object src){
return new AbstractAction(){
public void actionPerformed(ActionEvent e) {
e.setSource(src);
a.actionPerformed(e);
}
};
}
こんな感じで新たに生成してやるとうまくいくのですが、わざわざ作り直すのは抵抗があって・・・
何か打開策がありましたらご教授ください。
0963デフォルトの名無しさん
2008/02/13(水) 20:16:03アクションが操作対象となるJTreeのインスタンスを持てばいいだけじゃないのか?
0964962
2008/02/15(金) 09:33:09JComponentのインスタンスでなければ弾いているので、そもそもアクションまで起こっていないんです。
CopyActionくらい自分で実装して、>>963さんのおっしゃるように対応したコンポーネントのインスタンスを持たせていた方がいいかもしれないですね。
ありがとうございました。
0965デフォルトの名無しさん
2008/02/23(土) 11:27:45それを実装するコンポーネントでどのようなアクションを取ったかを調べられれば問題ないのですが、それがMouse系のリスナーではスマートに調べられなくて困っています。
教えください。
0966デフォルトの名無しさん
2008/02/23(土) 11:36:04何十回か氏んできます。
0967デフォルトの名無しさん
2008/02/24(日) 11:38:09メジャーどころだとNetbeans付属のものやVisual Editorがありますよね。
ほかにもJformDesignerや、jvilderなどがあるようです。
みなさん、GUI開発にはどんなツールをお使いですか?
0968デフォルトの名無しさん
2008/02/24(日) 11:48:000969デフォルトの名無しさん
2008/02/24(日) 11:51:42慣れないうちは思うようにデザインできないけど慣れたらかなり使いやすいかも
0970デフォルトの名無しさん
2008/02/24(日) 11:54:491000行ぐらいいっちゃうのがちょっとアレですが。
jiglooは冗長にならないように書けます?
0971デフォルトの名無しさん
2008/02/24(日) 12:28:06あれ使えばそんなに冗長にはならないですよ
個人的に一つ一つのコンポーネントのプロパティ設定で勝手にブロックで囲んでくれてるのが見やすくて好きです。
0972デフォルトの名無しさん
2008/02/24(日) 12:50:00他のデザイナを試してみることにしましょう。Jiglooか、もうNetbeansかな。
EclipseのプラグインでWindowBuilderというのもこれに対応しているようですが、
日本で使ってる人があまりいなさそう・・・
0973デフォルトの名無しさん
2008/02/24(日) 14:39:26書けるGUIデザイナが欲しすぎる。
0974デフォルトの名無しさん
2008/02/24(日) 15:14:140975デフォルトの名無しさん
2008/02/24(日) 15:54:12何かと合理的。
0976デフォルトの名無しさん
2008/02/24(日) 16:02:31細かいイベント等制御するためのSwingなんじゃねーか
HTMLベースでいいのならWEBアプリにするだろ
0977デフォルトの名無しさん
2008/02/24(日) 16:11:07Web 開発の資産やスキル転用できるし、単純にブラウザコンポーネントとしても転用も可能。
まじめに考えてるわけではないのでカスタムコンポーネントの追加方法なんか考慮する
必要はあるが、そんな頭から否定されるほど悪い話ではないと思うが。
0978デフォルトの名無しさん
2008/02/24(日) 16:27:11まぁ今の環境で満足だし、そこまで外部化してしまわなくてもいい気もするなぁー
0979デフォルトの名無しさん
2008/02/24(日) 17:43:06JavaFXがやろうとしてるんじゃないかな
ただXMLベースじゃないみたいだけど
0980デフォルトの名無しさん
2008/02/24(日) 17:49:05スタンドアロンアプリでTomcat動して、UIはブラウザ、ってすればいいんじゃね?
0981デフォルトの名無しさん
2008/02/24(日) 18:09:120982デフォルトの名無しさん
2008/02/24(日) 18:14:29レス数が950を超えています。1000を超えると書き込みができなくなります。