- 1 名前:デフォルトの名無しさん [2007/09/26(水) 20:51:18 ]
- ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。 そんなSwingと引き続き付き合っていくみんなのスレッドです。 Java低速GUI Swing 5 (前スレ) pc11.2ch.net/test/read.cgi/tech/1161139809/ Java低速GUI Swing 4 pc8.2ch.net/test/read.cgi/tech/1140533866/ Java低速GUI Swing 3 pc8.2ch.net/test/read.cgi/tech/1121700954/ Java低速GUI Swing 2 pc8.2ch.net/test/read.cgi/tech/1095398949/ Java低速GUI Swing pc5.2ch.net/test/read.cgi/tech/1062271447/l50
- 939 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:41:33 ]
- SwingよりJava2DじゃなくてSwingよりAWTでJava2Dじゃね?
Java2DよりJOGLの方がry
- 940 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:43:46 ]
- Java2D って Swing じゃないのか?
- 941 名前:932 [2008/02/07(木) 23:46:41 ]
- >>936
CardLayout、あとは自分で動作とか確認しますが、リファレンス曰く、 「コンテナ内の各コンポーネントをカードとして扱います。一度に 1 枚のカードだけを表示し…」 う、1枚では困るぅ〜。 >>938 Java2D にそんなに詳しくないのですが、 ゲームのキャラでなく、(バーチャル環境の)アバターみたいのヤツを 前後(奥行き)に操作する、といったような例だとどうでしょうか。 イメージのまま取り回すのは管理が大変かなぁ、とビビッているのですが…。 設計次第ですかねぇ。 速度の要望はそんなにシビアでないです。
- 942 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:23:42 ]
- >>939
JOGLいいけど、テクスチャを単純に表示するのが目的ならそこまで必要ないと思う プラットフォームによってパッケージが違うのもやっかいだし、Line引くときたぶんはまる Java2Dはαブレンディングがまともに実装されていないのがきついかな おかげでゲームで使うときはJOGL必須だ >>941 その動かすキャラクターの動く範囲は? Window内をじゆうじざいにということでないのなら、 その描画はJava2Dによる重ね合わせのほうが難易度は低いと思う
- 944 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:38:19 ]
- αブレンドなぁ。結局Java2Dだとハードウェアアクセラレータ効かないんだよな。
JOGL1.1ならcom.sun.opengl.util.j2dが追加されたから BufferStrategyと同じ感覚で使えるんだけどcom.sunパッケージは嫌い?
- 945 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:07:08 ]
- レイヤードペインの話題が見えたので便乗
1.JFrameのgetLayeredPane()に直接JLabelとか貼り付けて遊んでた。 2.この状態で、ポップアップメニュー出したら、表示されなかった。 3.マウスをずるずる動かして、見えないメニューの上を通過させるとメニューが表示された。 ※メニューが「パッ」と全部表示されるんじゃなくて、 マウスが乗っかったメニューアイテムが1つずつ表示される。 4.JLabelを乗せるレイヤーを変えても問題は解決しなかった。 そもそも1.の使い方がナンセンスなのか。 レイヤードペインとポップアップは気をつける何かがあるのか。 誰か知ってる人がいたら教えてください。
- 946 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:07:33 ]
- 混ぜるな危険じゃない?
- 947 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 08:21:43 ]
- ポップアップってどっかのレイヤーの上に描画されるんだっけ?
GlassPane?
- 948 名前:デフォルトの名無しさん [2008/02/08(金) 09:58:10 ]
- おはようございます。932,941でございます。
とりあえず、LayeredPane を導入してみますデス。 もう一個、教えてくんです・・・。 contains(int x, int y) メソッドって、 リスナーにしなくても mouseEntered なとき(Component 上に マウスカーソルがあると)、勝手に呼ばれるようですが、 それでよいです??? Documented な仕様ですか? override して使わないほうがよさそうですよね。override しちゃだめ? だったら final にして〜〜。
- 949 名前:デフォルトの名無しさん [2008/02/08(金) 18:15:56 ]
- >>947
描画される順番の問題。 GlassPaneは自分で描画しない限り何もない。 GlassPaneでイベント握り潰せば結果的にGUIをブロックできる。
- 950 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:21:08 ]
- >>947
layeredPane の POPUP_LAYER じゃない?
- 951 名前:945 mailto:sage [2008/02/09(土) 00:25:29 ]
- 追記
JLabelにアニメーションGIFを表示させた場合、 絵が書き換わるたびに、マウスずらしで表示させた ポップアップメニューが消されたw ・JLabelに文字を表示させた場合 ・普通にコンテンツペインにJLabelを置いた場合 この状態での実験も。。。今度やってみる
- 952 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:06:14 ]
- どうしてもバグければ JPopupMenu#setLightWeightPopupEnabled を false にしてみる手も
- 953 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:47:18 ]
- バグ-ける
- 954 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:59:19 ]
- その活用形はおかしい
バグ-かろう バグ-かった バグ-くない バグ-い バグ-ければ
- 955 名前:948 [2008/02/09(土) 13:01:03 ]
- 昨日、速攻、JLayeredPane 組み入れました。
気がついたのは、 より上位の Layer のコンポーネントが、より下位のコンポーネントを 完全に覆い隠すと(感覚的にいうと lower.getBounds() < upper.getBounds()) のとき下位のコンポーネントが描画されない(消える) つーことがありました。 理屈としては、そのほうが、高速化が図れるのかもしれないけど、 上位の矩形のイメージが透明化されてるときちょっと困るんだけどなぁ。
- 956 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:38:19 ]
- >>955
上位レイヤのコンポーネントでsetOpaque(false)でどう?
- 957 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:41:41 ]
- setOpaque(false) してる?
- 958 名前:948 [2008/02/09(土) 15:38:21 ]
- >>956,957
レス、どうもです。 setOpaque() してると思うんですが、今日は、職場でないので 確認できないっす。火曜日にチェックします! みなさんは休出っすか?
- 959 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:41:04 ]
- >>958 は 3 回くらい死んでも良いと思う
- 960 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:30:57 ]
- つーか自宅にPCないんか
- 961 名前:945 mailto:sage [2008/02/10(日) 03:09:13 ]
- おいおい、会社で趣味プログラミングかよw
それはともかく、>>952さんありがとうございます。 ポップアップでまくりですよ。 そして、実験の報告。 >・JLabelに文字を表示させた場合 結果:× レイヤードペインに文字ばっかりのJLabelを乗せてみた。 文字の後ろにメニューがでた。文字の隙間からメニューが見えてるw マウス動かすと文字の前に来るあたりの挙動は一緒。 >・普通にコンテンツペインにJLabelを置いた場合 結果:○ 当たり前か。
- 962 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:16:03 ]
- >>962
アクションが操作対象となるJTreeのインスタンスを持てばいいだけじゃないのか?
- 964 名前:962 mailto:sage [2008/02/15(金) 09:33:09 ]
- 聞いておきながら遅くなってしまってすみません。
JComponentのインスタンスでなければ弾いているので、そもそもアクションまで起こっていないんです。 CopyActionくらい自分で実装して、>>963さんのおっしゃるように対応したコンポーネントのインスタンスを持たせていた方がいいかもしれないですね。 ありがとうございました。
- 965 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:27:45 ]
- 例えばリストにTransferHandlerを設定するとき、COPYなのかMOVEなのかCUTなのか判定させたいときどのようにすればよいのでしょうか?
それを実装するコンポーネントでどのようなアクションを取ったかを調べられれば問題ないのですが、それがMouse系のリスナーではスマートに調べられなくて困っています。 教えください。
- 966 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:36:04 ]
- 勘違いしていました。
何十回か氏んできます。
- 967 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:38:09 ]
- GUIのデザイナはなかなか決定的なものがないようなのですが、
メジャーどころだとNetbeans付属のものやVisual Editorがありますよね。 ほかにもJformDesignerや、jvilderなどがあるようです。 みなさん、GUI開発にはどんなツールをお使いですか?
- 968 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:48:00 ]
- テキストエディタで手書きしてまつ・・・
- 969 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:51:42 ]
- jiglooがなかなかおすすめ。
慣れないうちは思うようにデザインできないけど慣れたらかなり使いやすいかも
- 970 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:54:49 ]
- 私はVisual Editor。でも、ちょっとコンポーネント置いただけですぐ
1000行ぐらいいっちゃうのがちょっとアレですが。 jiglooは冗長にならないように書けます?
- 971 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:28:06 ]
- Visual EditorってGroupLayoutサポートしてましたっけ?
あれ使えばそんなに冗長にはならないですよ 個人的に一つ一つのコンポーネントのプロパティ設定で勝手にブロックで囲んでくれてるのが見やすくて好きです。
- 972 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:50:00 ]
- 残念、Visual EditorにはGroupLayoutのサポートはまだないみたいです。
他のデザイナを試してみることにしましょう。Jiglooか、もうNetbeansかな。 EclipseのプラグインでWindowBuilderというのもこれに対応しているようですが、 日本で使ってる人があまりいなさそう・・・
- 973 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:39:26 ]
- ソースコード生成するんじゃなくてXAML式に
書けるGUIデザイナが欲しすぎる。
- 974 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:14:14 ]
- リファクタリングとかソースとの動機が取れなくなりそうだ
- 975 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:54:12 ]
- 一般ブラウザ並みに JTextPane 強化して HTML ベースで GUI 組めるようにしたほうが
何かと合理的。
- 976 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:02:31 ]
- それはねーよ
細かいイベント等制御するためのSwingなんじゃねーか HTMLベースでいいのならWEBアプリにするだろ
- 977 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:11:07 ]
- onmouseover などからイベントリスナ呼びゃいい話でしょ。必要なら追加すりゃいいし。
Web 開発の資産やスキル転用できるし、単純にブラウザコンポーネントとしても転用も可能。 まじめに考えてるわけではないのでカスタムコンポーネントの追加方法なんか考慮する 必要はあるが、そんな頭から否定されるほど悪い話ではないと思うが。
- 978 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:27:11 ]
- そんなの全く考えたことなかったから結構新鮮だわw
まぁ今の環境で満足だし、そこまで外部化してしまわなくてもいい気もするなぁー
- 979 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:43:06 ]
- GUIコンポーネントは宣言的に置くようにしてロジックは別にしたいってことでしょ
JavaFXがやろうとしてるんじゃないかな ただXMLベースじゃないみたいだけど
- 980 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:49:05 ]
- そこまでWeb開発の資産やスキルを転用したいのなら、
スタンドアロンアプリでTomcat動して、UIはブラウザ、ってすればいいんじゃね?
- 981 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:09:12 ]
- アプレットや Web Start とかで使えねんじゃ。
- 982 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:14:29 ]
- XULを再発明したいのか
- 983 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:37:25 ]
- JSP や JDBC を再発明と言う?
別に XUL の Java 実装でも良いけど。
- 984 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:46:16 ]
- あ、いやこの話はそろそろやめる。
- 985 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:19:48 ]
- >>977
scriptのIDEサポートとかJavaのほかに別言語を覚えないといけないとか そもそもブラウザによって違いがあるというのに・・・ ボタンクリック等のイベント程度でいいのなら別にかまわんとおもうけど
- 986 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:36:38 ]
- XMLは長ったらしすぎるので
すっきりとロジックと融合したGUIが宣言ベースでかけるというのが 売りなのでしょう。 ただ、いまいち方向性が分からないというのは・・・。
- 987 名前:デフォルトの名無しさん [2008/02/24(日) 21:57:42 ]
- SWTスレとマルチで失礼します。
クライアント側のJavaで、RTF文章を何らかの形で表示(編集できなくてもOKです)させたいのですが、 JEditorPaneはあまりにも古すぎてJREに同梱されているLICENSE_ja.rtfすらマトモに読めない、という 情けないことになっています。他に何らかの代替/回避方法はないのでしょうか?
- 988 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 11:01:37 ]
- RTFをパースして使えるコンポーネントに流し込むところを自作する
- 989 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 11:06:57 ]
- うふふw鬼ww
- 990 名前:987 mailto:sage [2008/02/26(火) 10:29:05 ]
- >>988
>>989 いや、マジメな話、(ライブラリ等を使うかは別にして)今のところ、ググって引っかかるのはそのアプローチしかないみたい。 もう少し簡単な方法がないかと思って質問してみたのですがね(笑
- 991 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:43:02 ]
- SWT なら OLE でハメ込めるんじゃなかったっけ?
- 992 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:48:04 ]
- いまどきそれだけのためにSWT使うってのもなぁ
- 993 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 01:57:15 ]
- 非常に抽象的な質問で申し訳ないのですが、スクロール可能なコンポーネントを作る際、Scrollableを実装するだけではだめなのでしょうか?
単純に実装してJScrollPaneにのっけてやるだけでは、実装したメソッドのうち、 getScrollableTracksViewportHeight() getScrollableTracksViewportWidth() の二つは呼び出されるのですが、肝心の getPreferredScrollableViewportSize() が呼び出されないのです。 どうしてでしょうか?
- 994 名前:デフォルトの名無しさん [2008/02/28(木) 03:04:21 ]
- みんなBoxLayoutはつかってないのか?
ほとんどこれ1本でやってるんだけど。
- 995 名前:デフォルトの名無しさん [2008/02/28(木) 03:21:59 ]
- > 993
getPreferredSize()はどう実装している?
- 996 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 08:45:59 ]
- >>995
すみません。寝ぼけてたようで、 getScrollableTracksViewportHeight() getScrollableTracksViewportWidth() の判定で必ずtrueがかえってしまうようになってしまってました。 というわけでスレ汚してしまったのでお詫びに次スレ建ててきました・・・が、タイトル間違えてしまいました。 本当にすみません。板まで汚してしまったみたいです。 pc11.2ch.net/test/read.cgi/tech/1204155623/
- 997 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:48:07 ]
- 1レス埋めて去る。
- 998 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:54:53 ]
- ところで次スレは上の見すったやつ使うの?
せっかくスレタイ変えたのに
- 999 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 19:24:19 ]
- っと、気づいたらもう999かよ
- 1000 名前:デフォルトの名無しさん [2008/03/01(土) 19:25:58 ]
- 上野でいいじゃん
細かいこと気にするなよ
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|