10/06/07 00:33:23
>>464
javadocみるとそれしかないかなって思ってましたけど、一番単純な方法はやはりそれでしょうね。
javaはclassの継承を中心とした言語設計なのに、swingはDIというかMVCというかプラグインというか、java langにとってswinの設計思想はまったく異質なので非常に複雑なライブラリとなっています。
愚痴を言うわけではないですが複雑な割にこの程度の機能(それもtableとして当たり前のような機能)しかないswing.tableなら、
少なくともhtml,dom,xmlやgridbag + cellの自作コンポでほとんど用が足りると思います。
javascript.prototypeのような考えならまた違ったのかもしれませんが、それをいうとあとの祭りなのでしょうね。
それと日本語のswingを扱ったHPは皆無ですね。グーグルでもこのスレがよくヒットします。
466:デフォルトの名無しさん
10/06/07 00:41:38
ああ、誤解を招きかねないですが、spiなら問題ないですがswingのようなui,skinableではspiや
plubableじゃなくてcssや、顧客一人一人に合わせたskin(script)のようにもっと軽く設定できない
(つまりskin,look,feelingについては固定の設定は存在しないという設計思想)と、UI開発者は敬遠するかなって思います。
webクリエーチャ達の髪の毛の軽さと同じく、JEditorPaneのhtmlエディタもしかりです。
467:デフォルトの名無しさん
10/06/07 05:26:11
>>465-466
SwingはJavaプログラマのためのライブラリです。
htmlやcssの方が得意な人のためのライブラリではありません。
SwingにhtmlやcssでUIを設定できないと文句を言うのはお門違いだと思います。
468:デフォルトの名無しさん
10/06/07 13:05:58
正確に言うとjavaじゃ無くてjvmプラットのUI
469:デフォルトの名無しさん
10/06/07 15:55:54
xmlならsynthがある。
JEditorPaneは最初はやる気満々だったけど扱おうとするドキュメントが方言だらけで投げた。
というかここら辺のフォローはSwing labの管轄なんだが。
まあ俺々思想が強すぎて>>465の意図がよく分からんが。
470:デフォルトの名無しさん
10/06/07 16:02:48
synthはswing uiに新しい機能を定義したり追加したりするものじゃないですよね・・・
471:デフォルトの名無しさん
10/06/07 16:19:01
swin sets 3も見てみましたけど、ただ高機能にしただけってところじゃないですかね。
それら機能の追加などカスタムなことをユーザ(開発者)が簡単にできるようにしないと汎用コンポでもないし汎用ライブラリ(javax swing)としても意味ないです。
少なくともjava,c++(qt3,qt4),dotnet,gameライブラリを当たり前のように使える開発者は時間があればそれぐらいのコンポネントは普通に作れますよ。
swing labのコンポネントはnetbeans apiに組み込んじゃったほうがいいんじゃないかと思います。
今はjavafxでしょうし、lgplのようですし、せっかく有用なコンポなのでswtと同じ感じでnetbeansを特に使う人達への特権ってことで。
472:デフォルトの名無しさん
10/06/07 16:42:55
ブログでやれ
473:デフォルトの名無しさん
10/06/08 11:39:06
キーバインドの変更だけならInputMap使うほうが素直では。
474:デフォルトの名無しさん
10/06/08 21:52:13
htmlしかコーディング出来ないスキルでguiやろうってのが無謀。
475:デフォルトの名無しさん
10/06/26 19:50:11
ahe
476:デフォルトの名無しさん
10/07/02 10:14:55
低速だとはおもわない
477:デフォルトの名無しさん
10/07/02 13:15:39
伝統だから付いてるだけだよ。
# 「Java 高速 GUI SWT」に対する皮肉も込めて…
478:デフォルトの名無しさん
10/07/03 02:29:19
教えてください。
JFrame→JDialog(モーダル)→JDialog(モーダル)の画面遷移で、
最後のJDialogをdispose()すると、最後のJDialog残像が残るんですが、(何回かやってると)
dispose()した後、2番目のJDialogをrepaint()しないといけないもんですか?
実際はもうちょっと複雑で、
2番目のJDialogの中にtableがあってTableのセル内のボタンを押した時に、
3番目のJDialogが開くようになってます。
そこで、選択した物をテーブルに表示するという処理になります。
3番目のJDialogを引数無で作成すると残像は起こらないんですが、
オーナー(2番目のJDialog)を指定してJDialogを作成した場合のみ問題が発生します。
479:デフォルトの名無しさん
10/07/03 09:30:08
hideしてからdispose
480:デフォルトの名無しさん
10/07/03 18:04:51
1.5以降ではhide()は推奨されないメソッドになっているため、
JavaDocの通り、setVisible(false)をしてからとか、
windowクラスのtoBack()をしてからdispose()をするなど、
色々と試してみたんですがうまくいきません。(モーダルなのでtoBack()は効くかもわかりませんが(汗))
あとは、windowsの問題かと思い、VM引数のnoddraw=trueでやってみたりもしたんですがダメでした・・
奥が深いですね・・・
481:デフォルトの名無しさん
10/07/03 18:19:52
それが再現出来るような説明を付けてバグ報告
482:デフォルトの名無しさん
10/07/03 23:55:02
3番目のJDialogをEventQueue.invokeAndWait()経由で開いてみるのはどうだろう。
483:デフォルトの名無しさん
10/07/04 18:14:32
先回りエスパーでinvokeLaterと修正してみるテスト
484:デフォルトの名無しさん
10/07/04 23:58:22
SwingUtilsですね
確認してみます。
色々と助言ありがとうございます。
解せないのは、
オーナーを指定した場合と、していない場合の動作ですが
まだわからないことが多いので勉強してみます。
485:デフォルトの名無しさん
10/07/09 12:48:41
Apache pivotのWTKって、Swingの補完に使えんのかな。