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

Java低速GUI Swing 2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
そんなSwingと引き続き付き合っていくみんなのスレッドです。

前スレ
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50

参考スレ
Java 高速GUI SWT 2
http://pc5.2ch.net/test/read.cgi/tech/1068349883/l50
0186デフォルトの名無しさんNGNG
>>185
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0187デフォルトの名無しさんNGNG
そういえばwxのスレ加速してるな
0188173NGNG
>>174
ありがとうございます。できました。
原因を聞いておきながら、実は解決策を望んでいたわけです。

しかし、また新たな問題が出ました。
JPanel のサブクラスの paintComponent(Graphics) で描画しようとしてますが
その上に乗っているラベルやボタンなどの上には描画できません。
どうすれば良いでしょうか?
ちなみに super.paintComponent() はやっています。
0189デフォルトの名無しさんNGNG
>>173
子コンポーネントが上に載ってるなら
そっちで上書きされるのがまともな挙動だと思うぞ

その上に描画したいのなら普通はGlassPaneとかでやるんじゃないかな
JFrame#setGlassPane(Component)ね
0190デフォルトの名無しさんNGNG
173はどうもGUIの考え方がおかしいな
0191173NGNG
>>190
すみません。やろうとしている事を言えば分かってもらえると思います。
今ゲームを作っています。そのゲームは 5*5 のマスがある盤が 2つあって
そこをそれぞれの戦車が自由に移動できます。
そして、相手の戦車に 2回弾を当てると勝ちです。
動作は 3つのコマンドを一気に入力して 2つの戦車を同時に動かします。
コマンドはガード、弱い弾、強い弾、移動があります。
ガードは弱い弾だけ跳ね返す事ができます。
コマンドは盤面の上にあるアイテムを取ると使えます。

あとの詳しい説明は GUI には関係ないので省略しますが、このゲームの構造から
盤をクラスにしました。しかし、弾を撃つアニメーションは 2つの盤をまたがって
しまいます。そこで、それらをパネルの上に置いてそのパネルに描画すれば良いのでは
ないかと考えました。
0192デフォルトの名無しさんNGNG
そういう用途なら、まさにGlassPaneが適している。
厳密に言うと、GlassPaneを使うよりは別のレイヤーに弾をおいた方が
よさそうだが。
LayeredPane, GlassPaneなどのキーワードでAPIドキュメントを調べるのだ。
0193デフォルトの名無しさんNGNG
Swingでやるならレイヤー勉強すればいいね

俺ならJava2Dで描画部分はまとめるけどね
0194デフォルトの名無しさんNGNG
>>191
> あとの詳しい説明は GUI には関係ないので

そこにある詳しくない説明もGUIには関係ないと思うのだが・・・
ま、オレも普通に1枚のパネルに描画するけどね。
0195デフォルトの名無しさんNGNG
>>191
動きのあるヤツなら、LayeredPaneなどSwingに重なり計算を任せずに
自前で重なり管理してやったほうがよくないか?
# スプライトクラスって誰か作ってないのかねぇ?
0196デフォルトの名無しさんNGNG
>>195
一番作っていて楽しい部分だからみんな自分用にガリガリ書いていると思われ
つーか、Java2D機能豊富で透過指定も余裕だからなぁ
そこまでほしいクラスでもないと思われ
0197デフォルトの名無しさんNGNG
ハードウェアのスプライト機能が使えるなら、必要だね。
0198デフォルトの名無しさんNGNG
Java2Dってハードウェアアクセラレーションつかってるの知らないやついたのか
0199デフォルトの名無しさんNGNG
JOptionPaneのように、
ダイアログを開いて、ボタンを押したときに呼んだ箇所へ値を返す仕組みは、
どのように作ればよいのでしょうか?
0200デフォルトの名無しさんNGNG
>199
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/JDialog.html
0201デフォルトの名無しさんNGNG
>>199
難しく考えないで。
いろんなやり方がありますから。。。
0202デフォルトの名無しさんNGNG
Java初心者の質問スレにもポストしましたがスルーされてしまったのでこちらで質問させてください。

SwingでJProgressBarを使った開発を行っているのですが、
データ処理中にProgressBarを動作させる方法がわからず困っています。
JProgressBar1.setValue(JProgressBar1.getValue() + 1);
こんなのをフツウの処理(Threadではない処理)の中でぐるぐる回すだけではダメなのでしょうか?
0203デフォルトの名無しさんNGNG
>>202
わずか2時間足らずの間レスがつかなかっただけでスルー扱いとは、随分と気が短いですね。
とりあえずこれでも読んで落ち着いてください。
http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html
0204デフォルトの名無しさんNGNG
ちゃんとsetMinimumとsetMaximumしてるのか?
0205デフォルトの名無しさんNGNG
>>202
ちょっとググったら日本語のやつがみつかったけど?

ttp://taka-2.com/jclass/JProgressBar.html
0206202NGNG
>>203
>>205
をよんでみましたが私がやろうとしている処理ではプログレスバーを動かすことができませんでした。
処理中に画面が固まる。。。
というわけで
Runnableなクラスの中でぐるぐる回しつつ
jProgressBar1.paintImmediately(rectangle);
とかで強引にコーディングして逃げることができますた。お騒がせしますた。
0207デフォルトの名無しさんNGNG
それでいいだろもしかしてイベント中にすべての処理やろうとしてたとか?
0208デフォルトの名無しさんNGNG
SwingのGUI絡みの設定を変える時はinvokeLater()経由しないと駄目だったんじゃ
なかったっけ。
すみませんうろ覚えです。
0209デフォルトの名無しさんNGNG
ワーカスレッドから UIスレッドのUI部品を更新するときには invokeLater は必要
http://java.sun.com/developer/onlineTraining/GUI/Swing1/shortcourse.html#JFCProgress
0210デフォルトの名無しさんNGNG
202はまずスレッドから勉強するべし。
0211デフォルトの名無しさんNGNG
GUIをこれからやるならどの本がオススメでしょう
0212デフォルトの名無しさんNGNG
技術評論社のGUI徹底攻略とか?
0213デフォルトの名無しさんNGNG
>>21
あの変な表紙の本は?
0214デフォルトの名無しさんNGNG
>>211
Java GUIコンポーネント完全制覇
とか
0215デフォルトの名無しさんNGNG
>>213
萌え絵が表紙のやつ?おれは買ったよw
0216デフォルトの名無しさんNGNG
あの萌え絵の本は評判が良いらしく、売り切れてるな。

まあでも地味に「Java GUIプログラミング」がいいと思う。
0217デフォルトの名無しさんNGNG
そこらへんの3冊が定番かね?
0218デフォルトの名無しさんNGNG
>>216
買ったけど、地の文、漢字の誤変換大杉。萎える。
少数派だろうが、こういうのが気になる人は止めとけ。
初版だけかな?とりあえず校正の人は責任をとって欲しい。
0219デフォルトの名無しさんNGNG
萌え絵の奴ってそんなに良いのか!
CPUの創りかたも萌え絵だったけど良かったなぁ
0220デフォルトの名無しさんNGNG
何の本だったか忘れたが、導入部だけ萌え文で本文が目に悪い漢字専門用語のオンパレードの解説書に引っかかって、それ以外萌え本は眉唾
0221216NGNG
いや俺は実は持ってない。アマゾンでの評価がやたら高いので本屋に買いに行ったら
売り切れてて買ってない。

↓その本
ttp://www.amazon.co.jp/exec/obidos/ASIN/4839913862/qid=1101031176/br=1-2/ref=br_lf_b_1/249-4488755-1849164
0222デフォルトの名無しさんNGNG
値段が安いからいいね
Java GUIプログラミングと完全制覇のどちらも高いし
でも量考えるとGUIプログラミングの方がイイのかな
0223 NGNG
萌え本は字が小さくて自分にはパッと調べにくいから買うの止めた。
三分冊の本も冗長すぎる気がする。
完全制覇のやつもいいとは思わなかった。AWT用のコードと説明が長すぎ。
いくらAwtがもとにあるとはいえ、不要に厚くなって使いづらいしSwingの深い情報ないし。
CoreJavaのGUIの説明みたいなのがいい。
レイアウトマネージャーに限ってはプロフェッショナルJavaがいい。
0224デフォルトの名無しさんNGNG
やっぱりCore JAVAに行き着くのかw
0225デフォルトの名無しさんNGNG
グラフィックJava2
Vol.1 AWT編
Vol.2 Swing編「上」
Vol.2 Swing編「下」

値段は高いし、量も多いから読むの大変だけど
図書館に置いてあったから借りて読んでる
まぁ、俺は複数の本を少しづつ読みながら先に進んでるからお薦めという本はない
0226デフォルトの名無しさんNGNG
萌え絵の本って網羅してるのかな
0227デフォルトの名無しさんNGNG
萌え絵の本は網羅まではしてないらしいよ。
ただGUIプログラミング初心者のスタートラインとしては最適らしいぞ。
アマゾンの感想読んだだけだけど....
0228デフォルトの名無しさんNGNG
どれ読んだら良いんだよヽ(`Д´)ノウワァァン
0229デフォルトの名無しさんNGNG
>>228
どれでもいいよ。表紙で選べ
0230デフォルトの名無しさんNGNG
表紙で選ぶと「萌え以外」になるなあ。
0231デフォルトの名無しさんNGNG
お持ち帰りまでが大変だ
0232デフォルトの名無しさんNGNG
0233デフォルトの名無しさんNGNG
萌え絵が表紙の本なんて日常的に買ってるだろ
0234デフォルトの名無しさんNGNG
Java関連萌え書籍スレはここですか?
0235デフォルトの名無しさんNGNG
萌え絵の本って何?
0236デフォルトの名無しさんNGNG
これ?
「Javaアプリケーション作成講座〜Swingプログラミング徹底攻略〜」
http://book.mycom.co.jp/book/4-8399-1386-2/4-8399-1386-2.shtml
0237デフォルトの名無しさんNGNG
それだと >221 にも書いてある...
0238デフォルトの名無しさんNGNG
得ろげー勝ってるってことじゃないの
0239デフォルトの名無しさんNGNG
萌える法律読本は糞だった
0240デフォルトの名無しさんNGNG
みんな、けっこう萌えが好きみたいですねw
0241デフォルトの名無しさんNGNG
2次元好きばっかでしょ
0242デフォルトの名無しさんNGNG
最近は専ら一次元だな。
ただし挿絵は考慮しない。
0243デフォルトの名無しさんNGNG
>>236
その本さぁ…表紙やイラストが萌え絵なのは、まぁどうでもいいが、
WEBブラウザのサンプル動かすと、エロゲメーカーのページに飛ぶのは
止めて欲しいんだが…。
0244デフォルトの名無しさんNGNG
うげ……
0245デフォルトの名無しさんNGNG
1. 今度の仕事はSwingだ。Swing全然知らねーが、でもがんばるぜ!
2. >>236の本を購入。絵がアレだが判りやすいと評判だしな。
3. まずはサンプルをビルド、よし、実行だ。
4. 月猫揚頁猥褻画像
5. 「仕事中に何見取るんじゃゴルァ」
6. 解雇
 ∧||∧
(  ⌒ ヽ  
 ∪  ノ
  ∪∪
0246デフォルトの名無しさんNGNG
禿和良
0247デフォルトの名無しさんNGNG
ひでー本
0248デフォルトの名無しさんNGNG
あれじゃない?
いい本を書いて、萌え系の表紙・萌え系のサンプルにして、萌え系の人じゃないと受け入れられないようにして、萌え系の人だけがSwingわかるようにするという。
そして、萌え系の人がそうじゃない人に対して能力をつけ、世の中を萌え系の人中心で動かす、という巨大なプロジェクト。
将来的には秋葉原に政治の中心を移そうという壮大な計画。
0249デフォルトの名無しさんNGNG
Java萌えヲタ晒しage
0250デフォルトの名無しさんNGNG
毎日コミュニケーションもさー、萌え絵のイラストレーターを一人に絞ってさ、
装丁も統一感だせばいいのにな。
で、本屋の一角に並べる訳よ。そりゃもうオライリーのごとく萌え絵がずらりと。
0251デフォルトの名無しさんNGNG
最悪な発想だな。萌え系とか言ってる奴等はみんな死ねよ。
本屋とかで買ってる奴を見かけると、マジで頭おかしいんじゃないかと思う。
0252デフォルトの名無しさんNGNG
すまない、普通に笑った。

ttp://v.isp.2ch.net/up/bd75889d26d7.jpg
何の本だよ。
0253デフォルトの名無しさんNGNG
レインタソを名乗ってコンピュータ本を出すとは大胆不敵だな。
0254デフォルトの名無しさんNGNG
>>250のアイディアは普通にいいと思った
今の萌え技術書は微妙に萌えきれないイラスト
ばっかりで、なんか買うのが恥ずかしい。
0255デフォルトの名無しさんNGNG
エロ漫画コーナーと間違えられる罠
0256デフォルトの名無しさんNGNG
>>254 >>254 >>254
0257デフォルトの名無しさんNGNG
結局のところ出入りする人間は変わらない罠
0258デフォルトの名無しさんNGNG
日本の技術書は表紙がいまいちなのが多いなあ。
0259デフォルトの名無しさんNGNG
>>236
って内容は良いの?
いいなら普通に読むぞ
0260デフォルトの名無しさんNGNG
本屋のコンピュータコーナーでは、店が独自に萌え本を一カ所にまとめているので
既にコーナー化してるな。
0261デフォルトの名無しさんNGNG
>>259
初心者向けの本としてはかなり良い。
0262デフォルトの名無しさんNGNG
>>261
ありがと、買ってくる
0263デフォルトの名無しさんNGNG
>>262
しつこいようだが、誤変換多発には注意
0264デフォルトの名無しさんNGNG
>>263
横線引いて書き直しますわ
読み終わってもBOOKOFFに売るわけでもないし
0265デフォルトの名無しさんNGNG
>>262
会社で君望ページなど接続してクビにならんようにな。
最近はログ取ってるし。
0266デフォルトの名無しさんNGNG
>>265
なんでAgeのページ飛ぶんだ・・・・
ひょっとして提供とか?
0267デフォルトの名無しさんNGNG
作者の趣味だろ
0268デフォルトの名無しさんNGNG
Swingって、本や解説ページが多いのに使ってる人が少ないな
あとサンプルとか公開したりしてるけど、サンプルしかなかったり…
0269デフォルトの名無しさんNGNG
そりゃもう、低速だからの一言に尽きる。
プログラムを組む側からすれば、すごく便利なんだけど。

0270デフォルトの名無しさんNGNG
浦島太郎キタ━━━━(゚∀゚)━━━━ッ!!
0271デフォルトの名無しさんNGNG
おれはいまや速度の問題はかなり小さくなったと思う。
むしろインターフェースが、ベースOSのものと異なっていたことのほうが大きいと思う。
J2SE 5.0でインターフェースがかなりネイティブ寄りになって良い感じ。
0272デフォルトの名無しさんNGNG
UIマネージャ変えろよw
0273デフォルトの名無しさんNGNG
↑インターフェイス=見た目 だと思ってるバカ
0274デフォルトの名無しさんNGNG
そういっていただけるとありがたいです。
今後の励みになります。
0275デフォルトの名無しさんNGNG
SwingとSWTはどっち勉強した方が役に立つ?
0276デフォルトの名無しさんNGNG
>>275
Swing。
SWTがEclipse以外の用途で生き残るとは思えない。
てゆーか、Eclipseが生き残ったとしても、いずれSWTは
捨てられると思う。
0277デフォルトの名無しさんNGNG
>>275
仕事で使う、または初心者ならSwing。
SWTを仕事で使ってるところは見たことが無いし(将来どうなるか知らんが)、
SWTは造りが非常にC的なんで、初心者には触らせたくない。

趣味でできる限り高速なアプリを作りたい、または既にオブジェクト指向を理解しているか
最初からC厨で影響受けることが無いならSWTでもいいと思う。
0278デフォルトの名無しさんNGNG
じゃあ、今、Java製クライアントを作成するのに使うならどっち。
0279デフォルトの名無しさんNGNG
間違いなくswing
0280デフォルトの名無しさんNGNG
プログラミングの使い勝手的に、SWTはあきらかにSwingに劣るからなあ。
0281デフォルトの名無しさんNGNG
あんなのJavaじゃねえ
0282デフォルトの名無しさんNGNG
AWTが最強
0283デフォルトの名無しさんNGNG
だってそんなこと言ったって、客がSWTがいいって言うんだから。
0284デフォルトの名無しさんNGNG
Swing on SWT
0285デフォルトの名無しさんNGNG
Swingはおくが深すぎる
慣れてくるとどんどん複雑なUIも作れるが・・・
速度調整のほうが大事やね
■ このスレッドは過去ログ倉庫に格納されています