Java標準低速GUI 6 AWT/Swingat TECH
Java標準低速GUI 6 AWT/Swing - 暇つぶし2ch902:デフォルトの名無しさん
08/01/18 23:44:31
JOGLはOpenGLスレで良いらしいぞ

903:デフォルトの名無しさん
08/01/19 00:32:48
OpenGL自体の知識はOpenGLスレが本筋
でもGLCanvasの挙動とかどうかんがえてもむこうの範疇ではないと思うんだが

904:デフォルトの名無しさん
08/01/19 00:49:50
JMFの話題についてけないゴミなんだろうな

905:デフォルトの名無しさん
08/01/19 02:38:13
スレチ

906:デフォルトの名無しさん
08/01/19 14:52:45
Java標準拡張のメディア再生フレームワークのどこがスレ違いなんだかw

907:デフォルトの名無しさん
08/01/19 14:57:23
スレタイ嫁アホ

908:デフォルトの名無しさん
08/01/19 14:58:04
誰も答えられる奴がいないんだろう。フヌケばかりだしw

909:デフォルトの名無しさん
08/01/19 15:00:19
自己紹介乙

910:デフォルトの名無しさん
08/01/19 15:06:22
>>909
フヌケw

911:デフォルトの名無しさん
08/01/19 15:09:12
頭の弱い自治厨が沸いてるみたいだけど、前からJMFの話題は出てるから。

912:デフォルトの名無しさん
08/01/19 15:17:48
スレタイの読めない盲目がわいてるからスルーしろ

913:デフォルトの名無しさん
08/01/19 15:20:32
JMF涙目www

914:デフォルトの名無しさん
08/01/19 21:24:53
>>893
ライセンス読むと良いよ。
たしかRuntimeと同じ特例が適用されてたと思う。

915:デフォルトの名無しさん
08/01/25 17:18:55
そういえばJava Media APIのスレってないんだな。
JMFとJOGLは需要ありそうというか隔離しないと他で暴れるバカが出てきそうだけど。

JAIは実際に使ってるの見たことないな。

Java Media APIスレ立てたら誘導用くらいには機能するかね?

916:デフォルトの名無しさん
08/01/25 18:02:09
>>915
JMFはあってもよさそうなもんだなぁ…
JOGLは…どの程度使われてるんだろ…?

917:デフォルトの名無しさん
08/01/25 18:18:28
ちなみにJava Media APIsはこんだけある


・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コンポーネント関係ないなら分けた方が良いと思うんだけどな。

918:デフォルトの名無しさん
08/01/25 18:23:03
使われてる割合JOGL>JMF
知名度JMF>JOGL
日本語リソースの多さJMF>JOGL

じゃない?
javaでゲームつくるとなるとJOGLは欠かせないけど、なきゃないでJava2Dで十分って感じ。
ゲ制のJavaでゲームつくるスレが落ちたからJOGL聞く場所がないんだよ。

919:デフォルトの名無しさん
08/01/25 18:31:48
>>918
javaでゲームつくるとなるとJOGLがほしい、ってのはわかるんだけど…
そもそもPC向けゲームをつくるのにjavaを選ぶ理由がないよなぁとか思うわけですよ?
その手のゲームって結構あるものなの?

920:デフォルトの名無しさん
08/01/25 18:32:44
コードに手を入れず入出力フォーマット増やしたいときに使うよ > JAI
まぁバグも多いけど。

921:デフォルトの名無しさん
08/01/25 18:32:58
JOGLはOpenGLスレでもいいんじゃない
ところでJMFとJOGLって比較するもんなのか…?

922:デフォルトの名無しさん
08/01/25 18:42:12
別に比較したいわけじゃなくてスレたてるかどーすっかって話だろ。
需要的に考えると全部まとめて Java Media API スレとかでもいい気がするな。

923:デフォルトの名無しさん
08/01/25 18:48:58
ぐだぐだ言ってないでスレ立てればいいだろ

924:デフォルトの名無しさん
08/01/25 18:57:23
JOGLは2.0はサポートするけど1.3で拡張からコアに入ったAPIは混同するという理由で1.3で追加されたAPIはサポートされてないから迂闊にOpenGLスレいけないんだよ。

あとjavaでゲームつくるってのはかなり居る。
日本でもググレば出てくるし、海外はJOGL,JInput,JOALはセットでゲームつくるときに使う。
ただ、リソースは海外の方が多い。
だから日本語のリソースがないから英語読めないと何も出来ネ!ってなる。

俺も需要的にJava Media APIsで統一してスレ立てても良いと思うんだが・・・誘導・隔離用にw
IIOとかJava soundはアプリケーションプログラマが直接いじる所って少ないしさ。

925:デフォルトの名無しさん
08/01/25 20:08:13
JOGLって将来的に標準に入るって可能性ありますかね?

926:デフォルトの名無しさん
08/01/25 20:22:48
クライアント向けのJava標準拡張は全てが滅茶苦茶将来性がある。
根拠はJava 7に登場のJava Kernel、JAM、JavaFXあたり。これらは要チェック。

Java Sound本、最近でたね。つい衝動買いしたけど、まだ読んでなかったり。

927:デフォルトの名無しさん
08/01/25 20:29:26
工学社ってだけでなんか敬遠してたんだけど実際どうなんだろう・・・

928:デフォルトの名無しさん
08/01/25 23:12:41
JOGLに将来性ある事は否定しないけど、まだ3年ぐらい先の話だろう。
つまり人柱。日本語のページも全然ないし。
あまり勧めたくはないけど、もしゲームで、かつwindowsなら、C#じゃないか?

929:デフォルトの名無しさん
08/01/25 23:26:44
あんな重いの話にならん。
1コア丸々使ってる箱○なら別だが

930:デフォルトの名無しさん
08/01/26 22:12:41
【JMF】Java Media APIs【JOGL】
スレリンク(tech板)l50

スレ立てられなかったのでスレ立て依頼出してたのが立った。
今後はこちらでどうぞ。

スレタイには一番使われそうなJMFとJOGLを追加しといた。
ほかテンプレあれば書いて。

Java Media APIsはDesktop Javaの一部なんでJava SE以外のエディションやAndroidは関連スレから除外しといた。
ネイティブ依存なSWTも同様。

931:デフォルトの名無しさん
08/02/06 00:48:21
で、いい加減そろそろ、JAIのメモリリークは直ったのか?

932:デフォルトの名無しさん
08/02/07 21:21:18
複数の Component の描画の順序(重なり具合)を任意に変えるには、

親コンテナ.remove(comp) / 親コンテナ.add(comp, index) もしくは
getComponentZOrder(comp) / setComponentZOrder(comp, index)

の組み合わせしか方法はありませんか?

Component のほうが、自立的に一歩前進、とか、一歩後退、みたいな仕掛け、ありませんかね…?

たとえば、大、小の円がそれぞれ component だったとして、
それを、drag で、重ねたときに、◎になるようにするしたいんですが。
(2つに限らず、3つ、4つでもいけるように)

getComponents してループさせて入れ替え、しかないでしょうか。

933:デフォルトの名無しさん
08/02/07 21:49:59
JLayerdPaneを増やして載っけるとか。



934:932
08/02/07 22:13:16
>>933
おぉ、JLayeredPane、忘れてましたw
duke 君のデモソースはチェックしたのに、なにしてんだ>自分

そういう Pane がある、ということは裏を返すと Container/Component
には、あまり気の利いた順序変更の手段はないんですかね。

ひきつづき、つっこみ・ご意見お待ちしております。

935:デフォルトの名無しさん
08/02/07 22:38:09
実際のところ重なりの順序を動的に変えたいことってあるの?
それが必要なパターンが想像できないんだが。

936:デフォルトの名無しさん
08/02/07 22:52:22
CardLayoutでもいいんじゃね?

937:932
08/02/07 23:03:27
レス、どうもです。

>>935
ビジネスアプリケーションじゃなくて、えと・・・
ゲームでキャラが重なる、みたいなヤツを思い浮かべてください。

>>936
CardLayoutは、ノーチェックでした。
リファレンスをチェックしてきますノシ

938:デフォルトの名無しさん
08/02/07 23:06:39
>>937
ゲームのようなやつならSwingつかわずにJava2D等で描画したほうがいいよ
速度的にもメリットが薄い

939:デフォルトの名無しさん
08/02/07 23:41:33
SwingよりJava2DじゃなくてSwingよりAWTでJava2Dじゃね?
Java2DよりJOGLの方がry

940:デフォルトの名無しさん
08/02/07 23:43:46
Java2D って Swing じゃないのか?

941:932
08/02/07 23:46:41
>>936
CardLayout、あとは自分で動作とか確認しますが、リファレンス曰く、
「コンテナ内の各コンポーネントをカードとして扱います。一度に 1 枚のカードだけを表示し…」
う、1枚では困るぅ~。

>>938
Java2D にそんなに詳しくないのですが、
ゲームのキャラでなく、(バーチャル環境の)アバターみたいのヤツを
前後(奥行き)に操作する、といったような例だとどうでしょうか。
イメージのまま取り回すのは管理が大変かなぁ、とビビッているのですが…。
設計次第ですかねぇ。
速度の要望はそんなにシビアでないです。

942:デフォルトの名無しさん
08/02/08 00:11:39
>>940
違うAWT、Swing,Java2Dは同じ層にあるUser InterFace Toolkits。
AWTはAWT,SwingはSwing,Java2DはJava MediaのAPI。
そもそもAWTは重量WindowToolkitでSwingはJava2Dを使った軽量WindowToolkitだろ。
Java2Dは2D描画ライブラリ。
javadoc嫁。

943:デフォルトの名無しさん
08/02/08 00:23:42
>>939
JOGLいいけど、テクスチャを単純に表示するのが目的ならそこまで必要ないと思う
プラットフォームによってパッケージが違うのもやっかいだし、Line引くときたぶんはまる

Java2Dはαブレンディングがまともに実装されていないのがきついかな
おかげでゲームで使うときはJOGL必須だ

>>941
その動かすキャラクターの動く範囲は?
Window内をじゆうじざいにということでないのなら、
その描画はJava2Dによる重ね合わせのほうが難易度は低いと思う

944:デフォルトの名無しさん
08/02/08 00:38:19
αブレンドなぁ。結局Java2Dだとハードウェアアクセラレータ効かないんだよな。
JOGL1.1ならcom.sun.opengl.util.j2dが追加されたから
BufferStrategyと同じ感覚で使えるんだけどcom.sunパッケージは嫌い?

945:デフォルトの名無しさん
08/02/08 02:07:08
レイヤードペインの話題が見えたので便乗

1.JFrameのgetLayeredPane()に直接JLabelとか貼り付けて遊んでた。
2.この状態で、ポップアップメニュー出したら、表示されなかった。
3.マウスをずるずる動かして、見えないメニューの上を通過させるとメニューが表示された。

※メニューが「パッ」と全部表示されるんじゃなくて、
マウスが乗っかったメニューアイテムが1つずつ表示される。

4.JLabelを乗せるレイヤーを変えても問題は解決しなかった。

そもそも1.の使い方がナンセンスなのか。
レイヤードペインとポップアップは気をつける何かがあるのか。
誰か知ってる人がいたら教えてください。

946:デフォルトの名無しさん
08/02/08 04:07:33
混ぜるな危険じゃない?

947:デフォルトの名無しさん
08/02/08 08:21:43
ポップアップってどっかのレイヤーの上に描画されるんだっけ?
GlassPane?


948:デフォルトの名無しさん
08/02/08 09:58:10
おはようございます。932,941でございます。
とりあえず、LayeredPane を導入してみますデス。

もう一個、教えてくんです・・・。
contains(int x, int y) メソッドって、
リスナーにしなくても mouseEntered なとき(Component 上に
マウスカーソルがあると)、勝手に呼ばれるようですが、
それでよいです??? Documented な仕様ですか?

override して使わないほうがよさそうですよね。override しちゃだめ?
だったら final にして~~。

949:デフォルトの名無しさん
08/02/08 18:15:56
>>947
描画される順番の問題。
GlassPaneは自分で描画しない限り何もない。
GlassPaneでイベント握り潰せば結果的にGUIをブロックできる。

950:デフォルトの名無しさん
08/02/08 18:21:08
>>947
layeredPane の POPUP_LAYER じゃない?

951:945
08/02/09 00:25:29
追記

JLabelにアニメーションGIFを表示させた場合、
絵が書き換わるたびに、マウスずらしで表示させた
ポップアップメニューが消されたw

・JLabelに文字を表示させた場合
・普通にコンテンツペインにJLabelを置いた場合

この状態での実験も。。。今度やってみる

952:デフォルトの名無しさん
08/02/09 11:06:14
どうしてもバグければ JPopupMenu#setLightWeightPopupEnabled を false にしてみる手も

953:デフォルトの名無しさん
08/02/09 11:47:18
バグ-ける

954:デフォルトの名無しさん
08/02/09 11:59:19
その活用形はおかしい
バグ-かろう
バグ-かった
バグ-くない
バグ-い
バグ-ければ

955:948
08/02/09 13:01:03
昨日、速攻、JLayeredPane 組み入れました。

気がついたのは、

より上位の Layer のコンポーネントが、より下位のコンポーネントを
完全に覆い隠すと(感覚的にいうと lower.getBounds() < upper.getBounds())
のとき下位のコンポーネントが描画されない(消える)

つーことがありました。
理屈としては、そのほうが、高速化が図れるのかもしれないけど、
上位の矩形のイメージが透明化されてるときちょっと困るんだけどなぁ。

956:デフォルトの名無しさん
08/02/09 13:38:19
>>955
上位レイヤのコンポーネントでsetOpaque(false)でどう?


957:デフォルトの名無しさん
08/02/09 13:41:41
setOpaque(false) してる?

958:948
08/02/09 15:38:21
>>956,957
レス、どうもです。
setOpaque() してると思うんですが、今日は、職場でないので
確認できないっす。火曜日にチェックします!
みなさんは休出っすか?

959:デフォルトの名無しさん
08/02/09 15:41:04
>>958 は 3 回くらい死んでも良いと思う

960:デフォルトの名無しさん
08/02/09 18:30:57
つーか自宅にPCないんか

961:945
08/02/10 03:09:13
おいおい、会社で趣味プログラミングかよw

それはともかく、>>952さんありがとうございます。
ポップアップでまくりですよ。

そして、実験の報告。

>・JLabelに文字を表示させた場合

結果:×
レイヤードペインに文字ばっかりのJLabelを乗せてみた。
文字の後ろにメニューがでた。文字の隙間からメニューが見えてるw
マウス動かすと文字の前に来るあたりの挙動は一緒。

>・普通にコンテンツペインにJLabelを置いた場合

結果:○

当たり前か。

962:デフォルトの名無しさん
08/02/13 19:28:37
現在TransferHandlerを用いてJTreeにコピーアンドペーストの機能を付加しています。
同様のアクションを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);
   }
  };
}
こんな感じで新たに生成してやるとうまくいくのですが、わざわざ作り直すのは抵抗があって・・・
何か打開策がありましたらご教授ください。

963:デフォルトの名無しさん
08/02/13 20:16:03
>>962
アクションが操作対象となるJTreeのインスタンスを持てばいいだけじゃないのか?

964:962
08/02/15 09:33:09
聞いておきながら遅くなってしまってすみません。
JComponentのインスタンスでなければ弾いているので、そもそもアクションまで起こっていないんです。
CopyActionくらい自分で実装して、>>963さんのおっしゃるように対応したコンポーネントのインスタンスを持たせていた方がいいかもしれないですね。
ありがとうございました。

965:デフォルトの名無しさん
08/02/23 11:27:45
例えばリストにTransferHandlerを設定するとき、COPYなのかMOVEなのかCUTなのか判定させたいときどのようにすればよいのでしょうか?
それを実装するコンポーネントでどのようなアクションを取ったかを調べられれば問題ないのですが、それがMouse系のリスナーではスマートに調べられなくて困っています。
教えください。

966:デフォルトの名無しさん
08/02/23 11:36:04
勘違いしていました。
何十回か氏んできます。

967:デフォルトの名無しさん
08/02/24 11:38:09
GUIのデザイナはなかなか決定的なものがないようなのですが、
メジャーどころだとNetbeans付属のものやVisual Editorがありますよね。
ほかにもJformDesignerや、jvilderなどがあるようです。

みなさん、GUI開発にはどんなツールをお使いですか?

968:デフォルトの名無しさん
08/02/24 11:48:00
テキストエディタで手書きしてまつ・・・

969:デフォルトの名無しさん
08/02/24 11:51:42
jiglooがなかなかおすすめ。
慣れないうちは思うようにデザインできないけど慣れたらかなり使いやすいかも

970:デフォルトの名無しさん
08/02/24 11:54:49
私はVisual Editor。でも、ちょっとコンポーネント置いただけですぐ
1000行ぐらいいっちゃうのがちょっとアレですが。

jiglooは冗長にならないように書けます?

971:デフォルトの名無しさん
08/02/24 12:28:06
Visual EditorってGroupLayoutサポートしてましたっけ?
あれ使えばそんなに冗長にはならないですよ
個人的に一つ一つのコンポーネントのプロパティ設定で勝手にブロックで囲んでくれてるのが見やすくて好きです。

972:デフォルトの名無しさん
08/02/24 12:50:00
残念、Visual EditorにはGroupLayoutのサポートはまだないみたいです。
他のデザイナを試してみることにしましょう。Jiglooか、もうNetbeansかな。

EclipseのプラグインでWindowBuilderというのもこれに対応しているようですが、
日本で使ってる人があまりいなさそう・・・

973:デフォルトの名無しさん
08/02/24 14:39:26
ソースコード生成するんじゃなくてXAML式に
書けるGUIデザイナが欲しすぎる。

974:デフォルトの名無しさん
08/02/24 15:14:14
リファクタリングとかソースとの動機が取れなくなりそうだ

975:デフォルトの名無しさん
08/02/24 15:54:12
一般ブラウザ並みに JTextPane 強化して HTML ベースで GUI 組めるようにしたほうが
何かと合理的。

976:デフォルトの名無しさん
08/02/24 16:02:31
それはねーよ
細かいイベント等制御するためのSwingなんじゃねーか
HTMLベースでいいのならWEBアプリにするだろ

977:デフォルトの名無しさん
08/02/24 16:11:07
onmouseover などからイベントリスナ呼びゃいい話でしょ。必要なら追加すりゃいいし。
Web 開発の資産やスキル転用できるし、単純にブラウザコンポーネントとしても転用も可能。
まじめに考えてるわけではないのでカスタムコンポーネントの追加方法なんか考慮する
必要はあるが、そんな頭から否定されるほど悪い話ではないと思うが。

978:デフォルトの名無しさん
08/02/24 16:27:11
そんなの全く考えたことなかったから結構新鮮だわw
まぁ今の環境で満足だし、そこまで外部化してしまわなくてもいい気もするなぁー

979:デフォルトの名無しさん
08/02/24 17:43:06
GUIコンポーネントは宣言的に置くようにしてロジックは別にしたいってことでしょ
JavaFXがやろうとしてるんじゃないかな

ただXMLベースじゃないみたいだけど

980:デフォルトの名無しさん
08/02/24 17:49:05
そこまでWeb開発の資産やスキルを転用したいのなら、
スタンドアロンアプリでTomcat動して、UIはブラウザ、ってすればいいんじゃね?

981:デフォルトの名無しさん
08/02/24 18:09:12
アプレットや Web Start とかで使えねんじゃ。

982:デフォルトの名無しさん
08/02/24 18:14:29
XULを再発明したいのか

983:デフォルトの名無しさん
08/02/24 18:37:25
JSP や JDBC を再発明と言う?
別に XUL の Java 実装でも良いけど。

984:デフォルトの名無しさん
08/02/24 18:46:16
あ、いやこの話はそろそろやめる。

985:デフォルトの名無しさん
08/02/24 19:19:48
>>977
scriptのIDEサポートとかJavaのほかに別言語を覚えないといけないとか
そもそもブラウザによって違いがあるというのに・・・

ボタンクリック等のイベント程度でいいのなら別にかまわんとおもうけど

986:デフォルトの名無しさん
08/02/24 21:36:38
XMLは長ったらしすぎるので
すっきりとロジックと融合したGUIが宣言ベースでかけるというのが
売りなのでしょう。
ただ、いまいち方向性が分からないというのは・・・。

987:デフォルトの名無しさん
08/02/24 21:57:42
SWTスレとマルチで失礼します。

クライアント側のJavaで、RTF文章を何らかの形で表示(編集できなくてもOKです)させたいのですが、
JEditorPaneはあまりにも古すぎてJREに同梱されているLICENSE_ja.rtfすらマトモに読めない、という
情けないことになっています。他に何らかの代替/回避方法はないのでしょうか?

988:デフォルトの名無しさん
08/02/25 11:01:37
RTFをパースして使えるコンポーネントに流し込むところを自作する

989:デフォルトの名無しさん
08/02/25 11:06:57
うふふw鬼ww

990:987
08/02/26 10:29:05
>>988
>>989
いや、マジメな話、(ライブラリ等を使うかは別にして)今のところ、ググって引っかかるのはそのアプローチしかないみたい。
もう少し簡単な方法がないかと思って質問してみたのですがね(笑

991:デフォルトの名無しさん
08/02/26 10:43:02
SWT なら OLE でハメ込めるんじゃなかったっけ?

992:デフォルトの名無しさん
08/02/26 10:48:04
いまどきそれだけのためにSWT使うってのもなぁ

993:デフォルトの名無しさん
08/02/28 01:57:15
非常に抽象的な質問で申し訳ないのですが、スクロール可能なコンポーネントを作る際、Scrollableを実装するだけではだめなのでしょうか?
単純に実装してJScrollPaneにのっけてやるだけでは、実装したメソッドのうち、
getScrollableTracksViewportHeight()
getScrollableTracksViewportWidth()
の二つは呼び出されるのですが、肝心の
getPreferredScrollableViewportSize()
が呼び出されないのです。
どうしてでしょうか?

994:デフォルトの名無しさん
08/02/28 03:04:21
みんなBoxLayoutはつかってないのか?
ほとんどこれ1本でやってるんだけど。

995:デフォルトの名無しさん
08/02/28 03:21:59
> 993
getPreferredSize()はどう実装している?

996:デフォルトの名無しさん
08/02/28 08:45:59
>>995
すみません。寝ぼけてたようで、
getScrollableTracksViewportHeight()
getScrollableTracksViewportWidth()
の判定で必ずtrueがかえってしまうようになってしまってました。

というわけでスレ汚してしまったのでお詫びに次スレ建ててきました・・・が、タイトル間違えてしまいました。
本当にすみません。板まで汚してしまったみたいです。

スレリンク(tech板)

997:デフォルトの名無しさん
08/03/01 17:48:07
1レス埋めて去る。

998:デフォルトの名無しさん
08/03/01 18:54:53
ところで次スレは上の見すったやつ使うの?
せっかくスレタイ変えたのに

999:デフォルトの名無しさん
08/03/01 19:24:19
っと、気づいたらもう999かよ

1000:デフォルトの名無しさん
08/03/01 19:25:58
上野でいいじゃん
細かいこと気にするなよ

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch