トップページ⇒tech
1001コメント326KB

Java標準低速GUI 6 AWT/Swing

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2007/09/26(水) 20:51:18
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"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
0841デフォルトの名無しさん2008/01/10(木) 19:27:17
よく見つけてくるな。すげーよ。
0842デフォルトの名無しさん2008/01/10(木) 21:33:46
有名なバグだぞ。
JListに512個要素突っ込むとバグるとか放置されてるし。
0843デフォルトの名無しさん2008/01/10(木) 22:03:23
>>842
2000個いれてみたけど、なにかバグあんの?
0844デフォルトの名無しさん2008/01/10(木) 22:52:30
512個入れて、一番したのアイテム選択してCTRL+B

これで、すべてのアイテムが2個ずつになって1024個になるというステキなバグ
0845デフォルトの名無しさん2008/01/10(木) 23:06:27
1から10000までの数字を全部掛けたときに
末尾に並ぶ0の個数を求めるのをJavaでおながいします
0846デフォルトの名無しさん2008/01/10(木) 23:10:36
それはSwingに関係あるのか?
0847デフォルトの名無しさん2008/01/10(木) 23:16:39
>>844
バグが出なかったんだけど
他になんか条件ないの?
0848デフォルトの名無しさん2008/01/10(木) 23:17:55
>>845

class Test{
static void main () {
cnt5 = 0;
for (int i = 1;i <= 10000; i++)
if(i % 5 == 0)
cnt5++;
System.out.println("count" + cnt5);
}
}
0849デフォルトの名無しさん2008/01/10(木) 23:22:25
ああ、5から5ずつ足してくから10000/5=2000か?
0850デフォルトの名無しさん2008/01/10(木) 23:48:27
10を素因数分解して2*5。んで、2は大量に有るから、5だけ数えれば良い、と。
0851デフォルトの名無しさん2008/01/10(木) 23:51:27
どの道>>848は間違ってるわな
0852デフォルトの名無しさん2008/01/11(金) 00:07:08
>>850
i%25 とか i%125 も数えなきゃだめじゃね?
0853デフォルトの名無しさん2008/01/11(金) 00:07:36
どのみちグズグズっぽいんだが。
0854デフォルトの名無しさん2008/01/11(金) 00:15:22
スレチだからまぁ。妖精現実を引っ張ってお茶を濁すべ
つ ttp://deztec.jp/x/05/faireal/faireal-26-index.html
0855デフォルトの名無しさん2008/01/11(金) 00:19:54
いかにロジカルに解くかが課題じゃなけりゃ BigDecimal で階乗求めて数えた方が早い。
実用に問題ないレベルならシンプル記述に徹するのも美学。
0856デフォルトの名無しさん2008/01/11(金) 00:48:09
80-20の法則な。今丁度勉強中。
08578482008/01/11(金) 01:29:37
直した。
class Test{
static void main () {
int cnt5 = 0, n;
for (int i = 5;i <= 10000; i += 5) {
n = i;
while (n % 5 == 0) {
cnt5++;
n /= 5;
}
}
System.out.println("count" + cnt5);
}
}
0858デフォルトの名無しさん2008/01/11(金) 01:39:18
だからどのへんがAWT/Swingに関係あるんだよと
0859デフォルトの名無しさん2008/01/11(金) 01:57:27
839だけど、このバグは初めて知った。
>>有名なバグだぞ。
にしては、バグ登録日があまり昔ではないが?

>>842
>>844
そんなバグはありえない。
まず、JList、JListのsuperクラスにCTRL+Bなんてデフォルトのキーバインドはない。
さらに、ListModelへ項目の追加、削除が可能であることを
JListは知りようがないから、JListがListModelに項目を追加することはできない。
(ComboBoxModelのMutableComboBoxみたいなインタフェイスはない。)

そもそも、登録もされていないキーバインドが実行されるなら、
JListでなく、JComponentのバグだし。

JListがListModelに項目を追加する唯一の方法は、
ListModelをDefaultListModelへダウンキャストすることだけど、
Swingのソースコードにダウンキャストするような箇所はない。

さて、どうやったら、ソースに書かれていないことを
JListが実行するのだろう?
0860デフォルトの名無しさん2008/01/11(金) 03:06:00
256発あてるとバキュラを破壊できるんだぜ
0861デフォルトの名無しさん2008/01/11(金) 03:13:52
Observer や Composite 型の設計だと本体クラスでそう書かれてないからライブラリのバグじゃねーとは
断言できないんだけどな。実行時のリスナやら集約の親子まで調べてやらないと。
0862デフォルトの名無しさん2008/01/11(金) 03:22:05
ちょっと尻切れトンボだった。
JLabel クラスが無罪であることを得々と説いてもあんまし意味なくね? という話 (実装者乙、でなければ)。
0863デフォルトの名無しさん2008/01/17(木) 15:17:13
JEditorPane とか、せめて W3C の DOM で xhtml + CSS になってくれりゃ
XSL で処理できるからデータを利用しやすいんじゃがのう。
0864デフォルトの名無しさん2008/01/17(木) 18:20:01
自分でやれば良いだろそれくらい。
0865デフォルトの名無しさん2008/01/17(木) 18:50:17
Lobo Browserに投資する企業はいないのかねぇ
0866デフォルトの名無しさん2008/01/17(木) 19:01:08
>>865
ブラウザを使うのがPCだけしかない考えてるなら、考え直した方がいい。
0867デフォルトの名無しさん2008/01/17(木) 19:04:52
Swing の HTML 機能も携帯のフルブラウザにすら追い越されて久しいわけだが。
0868デフォルトの名無しさん2008/01/17(木) 19:21:49
>>867
一緒にしてるしwwwアホか?
0869デフォルトの名無しさん2008/01/17(木) 19:27:01
シンクライアントに必要なだけだし携帯とかいらんな
0870デフォルトの名無しさん2008/01/17(木) 19:30:49
>>868
むしろあの HTMLEditorKit 系をおまいがどこで活用できてるのか知りたい。
0871デフォルトの名無しさん2008/01/17(木) 19:31:39
ブラウザをJavaでやる必要があるのか?
0872デフォルトの名無しさん2008/01/17(木) 19:42:23
普通にあるぞ。例えばヘルプ機能とかの生産性があがる。
JDICだとXSS対策が必要だろうけど、こっちは不要。
0873デフォルトの名無しさん2008/01/17(木) 19:56:22
うん、ヘルプは俺も使う。だがどうしてもその Sandbox から出してやれんw
0874デフォルトの名無しさん2008/01/17(木) 20:06:38
バカばっかだな
0875デフォルトの名無しさん2008/01/17(木) 20:09:36
Sandboxなフルブラウザは作れると思うが。
Rhinoにその手のインタフェースを与えなきゃいいだけだ。
0876デフォルトの名無しさん2008/01/17(木) 20:22:15
フルブラウザという言葉自体胡散臭い
0877デフォルトの名無しさん2008/01/17(木) 20:25:26
頭の悪い煽りがやたら入るスレだなw
0878デフォルトの名無しさん2008/01/17(木) 20:30:43
たまに客がどこで見つけたか知らないが 「Swing でもブラウザみたいなこと
できるんでしょ?」 と言い出す事もあるが、あれを見せるとさすがに黙る。
0879デフォルトの名無しさん2008/01/17(木) 20:34:02
つ Flying Saucer
0880 2008/01/17(木) 20:39:33
Swing の HTMLEditorKitは文字通りEditorのためでブラウザみたいに表示onlyではないからね。
でも日本語とかIMEのこととか考えてないよな、あのHTMLEditorKitは。表示だけならいいけど。
0881デフォルトの名無しさん2008/01/17(木) 20:46:38
4.01準拠マダー?
0882デフォルトの名無しさん2008/01/17(木) 23:57:24
JavaがC++より優れている事を示す
絶好の材料だと思うんだけどなあ<ブラウザ
0883デフォルトの名無しさん2008/01/18(金) 00:15:59
標準ライブラリの有無で言語の優劣を決めるのか?
0884デフォルトの名無しさん2008/01/18(金) 00:23:11
実際問題、ライブラリとIDEが言語仕様の優劣を余裕で帳消しにするからね。
D言語1.0がまったく普及しない原因がそれと言われてるし。
0885デフォルトの名無しさん2008/01/18(金) 00:29:11
C++の失敗もそうだね
標準ライブラリがしっかりしてれば
Javaは生まれなかったかも知れない
0886デフォルトの名無しさん2008/01/18(金) 00:30:48
Perl嫌いだけどこれだけ流行ってしまったのは
CPANのおかげと言っても過言ではない死ね
0887デフォルトの名無しさん2008/01/18(金) 00:36:14
>>883 の中では SmallTalk が世界を救うようです。
0888デフォルトの名無しさん2008/01/18(金) 03:53:19
java c++ d を同列に扱う馬鹿がおる
0889デフォルトの名無しさん2008/01/18(金) 08:12:32
>>888
人を否定するなら代替の主張を出してからにしたら?
0890デフォルトの名無しさん2008/01/18(金) 14:17:41
なにいってんだ?
0891デフォルトの名無しさん2008/01/18(金) 19:29:51
同列だろ。言語仕様は実装とは違うレイヤーにある。
0892デフォルトの名無しさん2008/01/18(金) 19:37:12
いいかげんスレ違いだろ
次の話題どうぞ
↓↓↓
0893デフォルトの名無しさん2008/01/18(金) 19:38:57
JMFって商用可能ですか?
0894デフォルトの名無しさん2008/01/18(金) 19:55:06
スレ違い
0895デフォルトの名無しさん2008/01/18(金) 20:11:16
どうかんがえてもここだろ。自治厨とか懐かしすぎ。
0896デフォルトの名無しさん2008/01/18(金) 20:52:29
JMFがここだって
0897デフォルトの名無しさん2008/01/18(金) 21:04:19
じゃあJOGLはここでいい?
0898デフォルトの名無しさん2008/01/18(金) 21:36:21
じゃあ、SDL for javaもここだな。

>>865の脳内ではメディア再生ライブラリがGUIツールキットなんだよ。
0899デフォルトの名無しさん2008/01/18(金) 21:51:43
普通の考えじゃん。頭おかしいんじゃね?
0900デフォルトの名無しさん2008/01/18(金) 22:57:52
JOGLはこっちじゃない?
http://pc11.2ch.net/test/read.cgi/tech/1033703640/
0901デフォルトの名無しさん2008/01/18(金) 23:25:19
JOGLとJava3Dはまったくの別物だぞ・・・
むしろGLCanvasとかGLJPanelとかAWTとSwingの外部コンポーネントと考えれるからこっちだろと

シンプルに描画だけのOpenGLの実装だからユーザーに全ての描画を任せるタイプで
フルスタックで重いJava3Dとはかなり違う
0902デフォルトの名無しさん2008/01/18(金) 23:44:31
JOGLはOpenGLスレで良いらしいぞ
0903デフォルトの名無しさん2008/01/19(土) 00:32:48
OpenGL自体の知識はOpenGLスレが本筋
でもGLCanvasの挙動とかどうかんがえてもむこうの範疇ではないと思うんだが
0904デフォルトの名無しさん2008/01/19(土) 00:49:50
JMFの話題についてけないゴミなんだろうな
0905デフォルトの名無しさん2008/01/19(土) 02:38:13
スレチ
0906デフォルトの名無しさん2008/01/19(土) 14:52:45
Java標準拡張のメディア再生フレームワークのどこがスレ違いなんだかw
0907デフォルトの名無しさん2008/01/19(土) 14:57:23
スレタイ嫁アホ
0908デフォルトの名無しさん2008/01/19(土) 14:58:04
誰も答えられる奴がいないんだろう。フヌケばかりだしw
0909デフォルトの名無しさん2008/01/19(土) 15:00:19
自己紹介乙
0910デフォルトの名無しさん2008/01/19(土) 15:06:22
>>909
フヌケw
0911デフォルトの名無しさん2008/01/19(土) 15:09:12
頭の弱い自治厨が沸いてるみたいだけど、前からJMFの話題は出てるから。
0912デフォルトの名無しさん2008/01/19(土) 15:17:48
スレタイの読めない盲目がわいてるからスルーしろ
0913デフォルトの名無しさん2008/01/19(土) 15:20:32
JMF涙目www
0914デフォルトの名無しさん2008/01/19(土) 21:24:53
>>893
ライセンス読むと良いよ。
たしかRuntimeと同じ特例が適用されてたと思う。
0915デフォルトの名無しさん2008/01/25(金) 17:18:55
そういえばJava Media APIのスレってないんだな。
JMFとJOGLは需要ありそうというか隔離しないと他で暴れるバカが出てきそうだけど。

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

Java Media APIスレ立てたら誘導用くらいには機能するかね?
0916デフォルトの名無しさん2008/01/25(金) 18:02:09
>>915
JMFはあってもよさそうなもんだなぁ…
JOGLは…どの程度使われてるんだろ…?
0917デフォルトの名無しさん2008/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コンポーネント関係ないなら分けた方が良いと思うんだけどな。
0918デフォルトの名無しさん2008/01/25(金) 18:23:03
使われてる割合JOGL>JMF
知名度JMF>JOGL
日本語リソースの多さJMF>JOGL

じゃない?
javaでゲームつくるとなるとJOGLは欠かせないけど、なきゃないでJava2Dで十分って感じ。
ゲ制のJavaでゲームつくるスレが落ちたからJOGL聞く場所がないんだよ。
0919デフォルトの名無しさん2008/01/25(金) 18:31:48
>>918
javaでゲームつくるとなるとJOGLがほしい、ってのはわかるんだけど…
そもそもPC向けゲームをつくるのにjavaを選ぶ理由がないよなぁとか思うわけですよ?
その手のゲームって結構あるものなの?
0920デフォルトの名無しさん2008/01/25(金) 18:32:44
コードに手を入れず入出力フォーマット増やしたいときに使うよ > JAI
まぁバグも多いけど。
0921デフォルトの名無しさん2008/01/25(金) 18:32:58
JOGLはOpenGLスレでもいいんじゃない
ところでJMFとJOGLって比較するもんなのか…?
0922デフォルトの名無しさん2008/01/25(金) 18:42:12
別に比較したいわけじゃなくてスレたてるかどーすっかって話だろ。
需要的に考えると全部まとめて Java Media API スレとかでもいい気がするな。
0923デフォルトの名無しさん2008/01/25(金) 18:48:58
ぐだぐだ言ってないでスレ立てればいいだろ
0924デフォルトの名無しさん2008/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はアプリケーションプログラマが直接いじる所って少ないしさ。
0925デフォルトの名無しさん2008/01/25(金) 20:08:13
JOGLって将来的に標準に入るって可能性ありますかね?
0926デフォルトの名無しさん2008/01/25(金) 20:22:48
クライアント向けのJava標準拡張は全てが滅茶苦茶将来性がある。
根拠はJava 7に登場のJava Kernel、JAM、JavaFXあたり。これらは要チェック。

Java Sound本、最近でたね。つい衝動買いしたけど、まだ読んでなかったり。
0927デフォルトの名無しさん2008/01/25(金) 20:29:26
工学社ってだけでなんか敬遠してたんだけど実際どうなんだろう・・・
0928デフォルトの名無しさん2008/01/25(金) 23:12:41
JOGLに将来性ある事は否定しないけど、まだ3年ぐらい先の話だろう。
つまり人柱。日本語のページも全然ないし。
あまり勧めたくはないけど、もしゲームで、かつwindowsなら、C#じゃないか?
0929デフォルトの名無しさん2008/01/25(金) 23:26:44
あんな重いの話にならん。
1コア丸々使ってる箱○なら別だが
0930デフォルトの名無しさん2008/01/26(土) 22:12:41
【JMF】Java Media APIs【JOGL】
ttp://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:21
で、いい加減そろそろ、JAIのメモリリークは直ったのか?
0932デフォルトの名無しさん2008/02/07(木) 21:21:18
複数の Component の描画の順序(重なり具合)を任意に変えるには、

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

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

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

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

getComponents してループさせて入れ替え、しかないでしょうか。
0933デフォルトの名無しさん2008/02/07(木) 21:49:59
JLayerdPaneを増やして載っけるとか。

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

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

ひきつづき、つっこみ・ご意見お待ちしております。
0935デフォルトの名無しさん2008/02/07(木) 22:38:09
実際のところ重なりの順序を動的に変えたいことってあるの?
それが必要なパターンが想像できないんだが。
0936デフォルトの名無しさん2008/02/07(木) 22:52:22
CardLayoutでもいいんじゃね?
09379322008/02/07(木) 23:03:27
レス、どうもです。

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

>>936
CardLayoutは、ノーチェックでした。
リファレンスをチェックしてきますノシ
0938デフォルトの名無しさん2008/02/07(木) 23:06:39
>>937
ゲームのようなやつならSwingつかわずにJava2D等で描画したほうがいいよ
速度的にもメリットが薄い
0939デフォルトの名無しさん2008/02/07(木) 23:41:33
SwingよりJava2DじゃなくてSwingよりAWTでJava2Dじゃね?
Java2DよりJOGLの方がry
0940デフォルトの名無しさん2008/02/07(木) 23:43:46
Java2D って Swing じゃないのか?
レス数が900を超えています。1000を超えると表示できなくなるよ。