- 1 名前:デフォルトの名無しさん [2008/11/21(金) 11:24:21 ]
- ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。 そんなSwingと引き続き付き合っていくみんなのスレッドです。 Java低速GUI Swing 7 pc11.2ch.net/test/read.cgi/tech/1204155623/ Java低速GUI Swing 6 pc11.2ch.net/test/read.cgi/tech/1190807478/ 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
- 175 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:33:09 ]
- やさしいJavaと聞いてとんできました
- 176 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:35:42 ]
- やらしいJavaですか?(*ノノ*)キャー
- 177 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 08:44:10 ]
- エロく無いと学習意欲がわかない訳ですね。
マナタソに飽きたのなら他の娘に乗り換えてみるのも一つの選択肢。浮気性は嫌われるかもだが。 はじめてのJavaとか童貞が飛びつきそうなマヌアル本も必要な時期だなwww
- 178 名前:デフォルトの名無しさん [2009/01/13(火) 21:43:44 ]
- もうすこしスレッドの扱いを楽に出来ないかね?
- 179 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:47:46 ]
- 楽になったじゃないか
- 180 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 04:50:22 ]
- スレッドのどの部分が楽じゃないか書かないと分からないよ。
単に一般的でない変な使い方しようとしてるだけとか?
- 181 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 12:26:18 ]
- 個人的には ThreadLocal と ThreadPool あたりが導入された時点で割りと満足だなー
- 182 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 13:01:59 ]
- ThreadPool ??
- 183 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 15:46:13 ]
- >>182
java.util.concurret.ThreadPoolExecutor とその関連
- 184 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 16:22:01 ]
- スレッドの仕組み的な話じゃないのか
描画スレッドとかさ
- 185 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 22:19:39 ]
- ここでSwingWorkerが出てこないのがこのスレのレベルの低さ
- 186 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 02:39:01 ]
- 土方生活が長いとそんなものでも楽だと思うものなんでしょうか?
- 187 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 03:34:36 ]
- SwingWorker最低限絞ったAPIだからな。
使うっちゃ使うが小規模なアプリだな。
- 188 名前:デフォルトの名無しさん [2009/01/16(金) 01:08:24 ]
- JavaFXのスレが立たないのは、なぜなんでしょ?
- 189 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 03:34:42 ]
- 誰も使ってないからに決まってるじゃないか。
描画スレッドで特殊な用途? サブミリナルでも埋め込みたいとか? ちらつき程度ならダブルバッファ使って描画してれば充分だろうし。
- 190 名前:デフォルトの名無しさん [2009/01/16(金) 23:59:30 ]
- >>189
誰も使いたがらない理由は、たとえば何なんでしょ?
- 191 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:33:53 ]
- ・重い
・配布サイズでかい ・ツールが弱い
- 192 名前:デフォルトの名無しさん [2009/01/17(土) 00:57:37 ]
- >>191
なるほど。 逆に軽くて、配布サイズ小さくて、ツールがよければ使うってことですかなぁ。
- 193 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 09:15:20 ]
- 名前が今一ってのもあるな。
FXよりはFAとかDXとかのほうがよかった感じ。
- 194 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 10:16:23 ]
- FXとかFAとかDXとか言われると、PC98を思い出してしまうぜー。
PC98だと終わってしまうから、JavaNXでどーよ。
- 195 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 10:17:53 ]
- FXって投機臭がする名前だ
- 196 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 10:25:10 ]
- >>193
ぶっちゃけJavaがついてる時点で
- 197 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 11:56:13 ]
- >>193
頓挫した「winFX」への当てつけじゃないの?
- 198 名前:デフォルトの名無しさん [2009/01/17(土) 16:27:39 ]
- >>191
ttp://www.google.co.jp/trends?q=JavaFX%2CAdobe+Flex%2CMicrosoft+Silverlight&ctab=0&geo=all&date=all&sort=0 重くて、配布サイズでかくて、ツールがいまいち分かりにくいSilverlightが人気なのは、なんなんですかねえ。
- 199 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 16:30:15 ]
- 人気・・・・・あるのか・・・・?
- 200 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 16:42:49 ]
- JavaFXと比べれば
- 201 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 16:47:23 ]
- 選択肢がなければ使わざるを得ない
- 202 名前:デフォルトの名無しさん [2009/01/17(土) 17:12:54 ]
- >>199
あ、失礼、人気じゃないすね。Googleトレンドとかで、比較してみてということ >>200 そいうことす
- 203 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 17:30:37 ]
- Flexでいいじゃん。
- 204 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 19:28:05 ]
- >>203
%% %%
- 205 名前:デフォルトの名無しさん [2009/01/17(土) 22:51:56 ]
- 配布サイズって関係あるのか?毎日ダウンロードを繰り返すわけでもあるまいに。
- 206 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:03:45 ]
- 【初心者】Java質問・相談スレッド122【歓迎】
pc11.2ch.net/test/read.cgi/tech/1229255937/ 次スレが無い
- 207 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:18:03 ]
- >>206
気にするな
- 208 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:19:16 ]
- 本屋にjRubyの本有ったので眺めてみたら、rubyからswing呼べるのな。楽しそうだわwww
- 209 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:32:49 ]
- JavaScriptからでも何でも呼べるじゃん・・・
- 210 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 02:05:44 ]
- groovyからry
- 211 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 02:45:10 ]
- PHPか(ry
- 212 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 02:46:24 ]
- マジレスすると、言語を生かしたSwing呼び出しという点では、Groovyだな。
SwingBuilderはなかなかいい。
- 213 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 04:39:31 ]
- Cからswing使ってる漏れはどうやら勝ち組(ry
- 214 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 06:39:50 ]
- JTreeでソートしたくて
((DefaultTreeModel)getModel()).removeNodeFromParent(node); これでノードを外して parent.add(node); これでノードを追加してソートしてたんよ でも、これだと開いてるツリーが閉じてしまうんだ。 開いてるツリーそのままでソートする方法しらない?
- 215 名前:214 mailto:sage [2009/01/25(日) 23:43:39 ]
- とりあえず、自己解決。
用意されてるメソッドでそれっぽいの見つけられなかったから、 現在展開してるパスを全部しらべて、ソートが終わってから開きなおすようにしたぜ。
- 216 名前:デフォルトの名無しさん [2009/01/26(月) 01:38:21 ]
- 久々にSwing使ってみたけど、相変わらず酷いなぁと思う
ここのスレの人はなぜSwingを使うのだろう C#やVB.NETじゃダメなの? LinuxやMacで動かしたいわけじゃあるまいし。
- 217 名前:デフォルトの名無しさん [2009/01/26(月) 02:09:41 ]
- >>216
いや、Linuxでも動かしたい。
- 218 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 02:49:22 ]
- >>216
いや、Solarisでも動かしたい。
- 219 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 05:32:01 ]
- マクで動かそうと思うと大変だから止めとけ。あれは異世界。存在しない物として扱ったほうが平和。
swing程度で十分というのが大きい。awtでもむしろ十分だが。 まあvs使えないだけとも言うが。コントロールをちまちまマウスで配置するくらいならコードで記述したい訳だ。
- 220 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 19:21:07 ]
- ポトペタなしのswingいじるのって、html手打ちするようなもんですよね
ポトペタありでswingいじったことないんですけど
- 221 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 03:35:16 ]
- HTMLもアドビのソフトでちまちま設定するより、メモ帳で書いたほうが速いしなあ。
- 222 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 11:30:33 ]
- HTMLは手打ち以外の選択肢はないな
大昔は必要がなかったし、今はカススタイラーゆえ意味がない
- 223 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:32:51 ]
- ポトペタありのSwingってのもキモそうだな。
なんか、モデルやコントローラまわりで歪なコード吐きそうだ。
- 224 名前:名無しさんに接続中… [2009/01/27(火) 16:31:56 ]
- SwingはなぜVBのようなデザイナーがないのだ?
- 225 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:54:49 ]
- おまえらNetBeansを無視するなよ。
Swing+JSR295+JSR296と組み合わせてポトペタできるくらいにまでなってるんだぞ。 ttp://builder.japan.zdnet.com/sp/07ide/story/0,3800082821,20350058,00.htm
- 226 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 14:06:14 ]
- HTMLも、業務アプリならポトペタがいいよなあ。
- 227 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 16:28:16 ]
- まあそういうときはAdobe Dreamweaverが最低ラインだな。
- 228 名前:デフォルトの名無しさん [2009/01/29(木) 06:43:53 ]
- swingはなぜ流行らないんだ?
- 229 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 08:25:30 ]
- デカくて重いからでないかい
- 230 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 08:54:08 ]
- >>228
GUIフレームワークで流行ってるのってなに?
- 231 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 08:59:55 ]
- MFC、VB
- 232 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 09:01:37 ]
- そこらへんは他に選択肢ないから使われてるだけじゃ
- 233 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 09:18:38 ]
- そのとおりだと思うけど、
Swingはなぜそれらの代替になりえないのか・・・ 速度か?やはり速度なのか?
- 234 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 09:20:45 ]
- Mac版のリリースが遅すぎる!
- 235 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 09:21:56 ]
- 先に普及したものが圧倒的に強いし。
単にSwingに既存のものを置き換えるほどの魅力がなかったってだけでしょ。
- 236 名前:デフォルトの名無しさん [2009/01/29(木) 09:31:29 ]
- >>233
自分は長いことWindowsアプリケーションを作ってきたんでつが、V2Cという2chビューワを使い始めてSwingアプリの軽快さにびっくりしたです。 V2Cが純Swingじゃなかったらスミマセン
- 237 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 09:37:22 ]
- いや、純だよ。
やっぱJavaはもうちょいデスクトップアプリケーション強化して、それと速度に関してもどうにかアピールしないとなぁ
- 238 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 13:26:10 ]
- javaはもっさりってのが一般的な常識だからかもしれんね
あと、表示が微妙にださかったり 俺はjavaしかまともに使えないから、swingをやってみた。 swingでダメだったらMS製品買えばいいかなーって感じで。 java以外も使えるようになりたいから、MS製品で遊んでもいいと思うんだけどね
- 239 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 14:11:25 ]
- >>238
> java以外も使えるようになりたいから、MS製品で遊んでもいいと思うんだけどね じゃあ Express Editions でも入れて C# とかやればいいと思うよまじめな話
- 240 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 15:46:58 ]
- Linux系のGUIをJavaでSwingでってわけにはいかんのか?
用途としてはもうそっちしかなかろう
- 241 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 16:03:25 ]
- Hashtableが保持している値をJTableに表示させていて、
Hashtableの内容が変更されたら、それと連動してJTableの表示も変更されるようにしたいのですが 何か常套手段みたいなのが有るんでしょうか?
- 242 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 16:55:15 ]
- >>241
レンダラーやエディターで意図したものにあってるかな?
- 243 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 19:24:19 ]
- >>241
10msおきにHashtableを監視してJTableにイベントディスパッチジョブ投げるスレッドを常駐させる。 Hashtable派生させたりMapやTableModelでラップしてもいいなら、他にも手はある。
- 244 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 19:25:19 ]
- BeansBindingとかでなんとかならんの?
使ったことないけど
- 245 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:25:16 ]
- >>243
あ、言われちゃった。 手抜き実装だけどこんな感じ。2秒ごとにMap操作して、JTableが更新される。 bucyou.mydns.jp/up_source2/codeview.php?u=ok&fn=2 >>244 ならんはず。
- 246 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 21:17:11 ]
- Hashtable使うのをやめる
- 247 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 04:09:12 ]
- 10msおきに監視ってコスト高そうだ。負荷凄いだろwww
変更する処理にトリガ噛ませてイベント受け取るようにしたほうがよく無いか? ウェブ系とかjava前提の製品とかだとインストーラからjava GUIだったりはするね。 インストーラ作成用との便利なフレームワークとかあるんだっけか? 表示が微妙にださいってのは人それぞれだからなあ。窓すらださいって言い出すマカみたいな変人も居るし。マルチモニタとかにすら対応できてないマクのほうがださいだろって感じだが。 GCがアレなのか、使ってるともっさり感が増すし、メモリも喰いまくってるのが駄目だな。 それ故、MFC, VBにすら負けてしまう。java使いが作る側には不満無いけどね。純粋にアプリユーザの側にはjavaじゃないほうが快適。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 07:39:08 ]
- >>247
>変更する処理にトリガ噛ませて それが243の言ってる”Hashtable派生させたりMapやTableModelでラップ”で、 その実装が、244のソースだろ。 MFC、VBには負けるかもしれないけど.NetのWinFormsとはいい勝負だと思う。 場合によってはSwingのほうが速いし。軽い。
- 249 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 10:30:43 ]
- >>247
スレチだがマルチモニタ環境ってのはMacのほうが歴史がずっと長いんだけどな… Windows XPじゃマルチモニタでカラープロファイルを別のをあてる、とかはできないしね。Vistaは知らん。 まー最近はWinのドライバのほうがマルチモニタでできること多いけれどもw
- 250 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 10:38:42 ]
- winのマルチモニタはMEからだっけ?98からだっけ?
個人的に、Macが先でMSがそれを追いかけたってのは、MSが先行するより信憑性がたかいw
- 251 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 10:52:35 ]
- ちょっと調べてみたが、
win98からマルチモニタ対応、しかしMacの対応時期がわからんかったw
- 252 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 13:35:57 ]
- 助けて下さい。
画像を拡大表示しているのですが、アニメーションGIFの拡大表示で困っています。 JLabelのアイコンにアニメーションGIFを設定すると、 フレーム切り替えのたびに以下のメソッドが実行されます。 public void paint(Graphics g) public boolean imageUpdate(.... この時、毎回アニメーションGIFの画像を拡大してると表示がもっさりしてしまいます。 だから、一度拡大表示したフレームは拡大したイメージを保存しておいて、再利用したいのです。 そこで問題になるのは「表示しようとしてるのは何フレーム目なのか?」 これが分からないことなんです。 何か分かる方法しってる人いませんかorz
- 253 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 16:59:16 ]
- カラープロファイルなんて印刷屋でもない限りどうでもいいだろ。
問題なのはメニューとか操作GUIの設計。 マクの実装だと、メニューはメインモニターにしか表示されないはず。 窓や犬は、メインウィンドウ自体にメニュー付いてるから、メインモニターとかサブモニターとか関係無く自由に使える。
- 254 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 17:45:12 ]
- winも結構トンチンカンな動きするソフトいたよな
サブモニタで右クリックしたら、メインモニタにメニューが出たり、 サブモニタで最大化したら、メインモニタで最大化したりw サブモニタで最大化したら、メインモニタの解像度に広がった時は非常に困ったw
- 255 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:29:06 ]
- サブモニタから起動したJARアプリのスプラッシュは、
やっぱりサブモニタに出て欲しいなあ。アプリはちゃんとサブ側に出る。 あ、当方WinXP+Sunの1.6系Java。 そのへん、Macはどうなんでしょ。
- 256 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:39:50 ]
- サブモニタから起動したかってどうやって判断するんだろ?
- 257 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:48:28 ]
- > アプリはちゃんとサブ側に出る。
前回終了時の表示位置覚えてるだけじゃなくて?
- 258 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:00:26 ]
- サブモニタから。。。起動?
俺のwinはタスクバーがサブモニタにあるんだが、これだと全部サブモニタに出ないとおかしくなるぜ >>257でいいと思う
- 259 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:37:13 ]
- Windowsの流儀は知らないけどタスクバーがある方を
プライマリモニターと呼ぶわけじゃないんだ?
- 260 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:52:01 ]
- winのタスクバーはメインもサブも移動可能
てなわけで、俺のタスクバーはサブモニタに配置してあります メインかサブかは、画面の解像度とか設定する画面で設定できるっす
- 261 名前:255 mailto:sage [2009/01/30(金) 22:56:24 ]
- ・サブモニタのデスクトップ上のJARファイルをダブルクリック
・サブモニタに移動したエクスプローラからJARファイルをダブルクリック いずれもサブモニタにアプリが出る。 ジオメトリ関連でやってることはsetLocationByPlatform(true)のみ。 これを外してもやはりサブモニタに出る。 サブモニタのコマンドプロンプトからjava.exe経由で起動すると さすがにメインモニタにアプリが出た。 サブモニタのNetBeansから起動してもやっぱりメインモニタ。
- 262 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:03:33 ]
- >>261
おもすれー ちょっと試しになんか作ってみよう
- 263 名前:デフォルトの名無しさん [2009/01/30(金) 23:09:57 ]
- 皆さんに聞きたいのですが、javaでどんなデスクトップアプリつくってますか?
今自分はタスク管理系アプリを作成しています。 メモ帳でいいじゃんはいいこなしでw
- 264 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:22:40 ]
- >>263
社内用にファイル処理系のアプリ。
- 265 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:33:15 ]
- >>263
エロ画像を楽しく閲覧するためのツール
- 266 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:11:06 ]
- >>263
2chのスレッド監視してエロ画像勝手に収集するツール
- 267 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:30:01 ]
- >>263
携帯電話とmacとwinでスケジュールを一元管理するソフト
- 268 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:50:08 ]
- ADVエンジン
- 269 名前:デフォルトの名無しさん [2009/01/31(土) 01:01:11 ]
- >>263
無駄にリッチなUIをもつ画像ビューワー をJavaFXでつくりたい。
- 270 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:00:02 ]
- Swing学習中なんだけど、ドローツールみたいなのを作るとき、以下のどれがいい?
1) Canvasみたいなコンポーネントを作って、図形を全部自前で管理する。 2) 図形の種類毎にコンポーネントを作って、Panelとかに貼り付ける。 3) それ以外。思い付かないけど。
- 271 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:29:30 ]
- 1かな。
ありがちなパターンだとShapeクラスを作ってそのクラスを継承したクラスを作る。 でJPanelを継承したShape描画用のコンポーネントを作って、paintComponentですべてのShpaeを描画する。
- 272 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:16:09 ]
- >>270
ネットワーク・グラフ描画用のライブラリをいくつか使ったことがあるんだけど、 そのどちらでもない設計が多かった。>>271が近い。 図形の管理はドロー用コンポーネントが行い、 実際の描画は図形オブジェクトに委譲している、と言えばいいかな。 図形の種類ごとにクラスを作るのは2と一緒だけど、 これらのクラスは独自のクラス階層を構成していて、 つまりJComponentのサブクラスではないので、そのままではSwingに乗っからない。 代わりに、図形を載せて描画する専用のSwingコンポーネントがある。 このドロー用コンポーネントは、paintComponentをオーバライドしていて、 addされた図形オブジェクトすべてに対して、paint系メソッドを呼ぶようになっている。 これらの図形クラスのpaint系メソッドは、各図形のための適切な描画を行うことになっている。 図形の追加の度にドロー用コンポーネントを変更しなくていいので、すっきりする。 Open-Closed Principleに合致しているね。 ライブラリによっては、図形クラスのpaint系メソッドがさらに別のオブジェクトに委譲可能で ここがAdaptableだったり(JListのレンダラみたいなの)、 図形クラスを、Swing非依存のモデルクラスと、Swing依存のビュークラスに分けて設計していたり、 さまざまだった。 この手のライブラリはいろいろあるので、見てみるといい刺激になると思う。 挙げるなら、OpenJGraphとかJGraphとかJungとかかな。
- 273 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:59:22 ]
- 「もしやJComponentを再発明しているのでは?」と思ったら、
思い切って資産捨てて透過JComponentベースで作り直す勇気も必要かも。 ドローツールとのことなので、まずは ・位置サイズのgetset、 ・可視性のgetset、 ・クリップしたGraphicsを渡すpaint ぐらいの軽い独自インタフェースで十分だと思うけど。
- 274 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:07:19 ]
- >>271-272
thx! 「グラフィックJava2」とか「Filthy Rich Clients」とか 引っくり返しながらいじってるんですが、既存コンポーネント以外 の話になると極めてプリミティブな部分しか載ってなくて、 どういう風に設計すればよいか、という部分については頭を かかえてたので参考になります。
- 275 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:16:38 ]
- >>273
や、今のところ、「JComponentのサブクラス作って、その上にマウスで Rectangleが描けるようにナッター\(゚∀゚)/」というレベルなので……。 その先に進もうとして、「これをつかんで移動させたり変形させたりしよう と思ったら、図形もJComponentのサブクラスにした方がええんちゃうか?」 というのが質問の発端です。
|

|