- 1 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 23:13:39 ]
- ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。 そんなSwingと引き続き付き合っていくみんなのスレッドです。 Java低速GUI Swing 8 pc12.2ch.net/test/read.cgi/tech/1227234261/ 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
- 60 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:27:00 ]
- 今のところこれで行こう的なフレームワークとかってないんですかね?
もしくはそんな動向の噂とか… なるべく先をにらんだ設計にしたいもので
- 61 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:42:32 ]
- ラベル、ボタン、チェックボックスなどをD&Dして表示位置を変更したいのですが、
JRE、サーとパーティのライブラリ問わずに、適した便利なクラス(マウスリスナー?)知っていたら教えてください。
- 62 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 14:41:03 ]
- >>61
こんなん作ったけど、いまいちうまく動かん。 int x ; int y; boolean init = false; public void mouseMoved(MouseEvent e) { Component c = (Component)e.getSource(); if (!init) { init = true; x = e.getX(); y = e.getY(); return; } c.setLocation(c.getX() +(e.getX() - x), c.getY() +(e.getY() - y)); x = e.getX(); y = e.getY(); }
- 63 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 17:39:53 ]
- アプレットでブラウザの×ボタンを押して終了したときに、そのイベントを拾うことっててきますでしょうか?
- 64 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 19:01:25 ]
- │A.. B
─┼─── .a │ .b │ Jtableの質問です 上記のような縦列表を作りたいのですがどうすれば良いのでしょうか 表の空欄には数値データを入れて計算等が出来るようにしたいと思っています
- 65 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 19:16:09 ]
- >>63
destroy()メソッドが呼ばれたときに中でメッセージを表示したりは できるけど、閉じるのを防ぐことは出来ないと思う。
- 66 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 10:49:36 ]
- >>64
new JTable(3,3)
- 67 名前:64 mailto:sage [2009/12/26(土) 12:04:16 ]
- 説明不足で申し訳ありません
列ABにString[]、行abにString[][]を使って JTable table = new JTable(String[][],String[])としたのですが、 String[][]を使ったために空セルにInt型のデータを入れられません どうすれば列AB行abを残したまま空セルに数値データを入れられるのでしょうか
- 68 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:08:11 ]
- String.valueOfで文字列化するというのは?
- 69 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:54:57 ]
- 表計算ソフトのようなテーブルを作るなら、
セルレンダラーやセルエディタを駆使しないと難しいよ。
- 70 名前:64 mailto:sage [2009/12/26(土) 13:33:55 ]
- >>68
>>69 ひとまずチャレンジしてみます ありがとうございます
- 71 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 14:07:03 ]
- さがせばスプレッドシートのライブラリあるけど?
- 72 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 12:39:08 ]
- JScrollPaneの中でJViewportがどの様に動いているか研究しているのですが、
スクロールバーをクリックした後に、JScrollPaneのどのメソッドが呼び出されているのかわかりません どなたか教えてください
- 73 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 15:56:07 ]
- スクロールバーをクリックすると、JScrollBarが持ってるBoundedRangeModelのsetValueが呼ばれる
それによってそのBoundedRangeModelに登録されたChangeListenerが起動する BasicScrollPaneUIがここにChangeListenerを登録していて、その中でJViewport#setViewPositionを呼んで表示範囲を調節している JScrollPaneはJViewportとJScrollBarとScrollPaneUIを管理しているだけ
- 74 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 10:08:01 ]
- 一般的なダイアログみたいに右下にボタン配置したいんだけど、どういった風にレイアウト組むのが自然?
- 75 名前:72 mailto:sage [2009/12/29(火) 11:39:40 ]
- >>73
ありがとうございます
- 76 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 11:48:24 ]
- tes
- 77 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 16:12:26 ]
- BorderLayoutのPAGE_ENDに置いたBorderLayoutのLINE_ENDに置いたGridLayoutにボタンを置くのが俺流
- 78 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 16:35:53 ]
- GridBagConstraints.SOUTHEAST でええやん
- 79 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:03:27 ]
- JSliderでツマミのマウスドラッグにより変更された際、ChangeListenerのの中で
((JSlider)e.getSource()).setValue(0); とかやっても、内部的な値は0にされるのですが、ツマミの位置がドラッグされた場所になってしまい 整合性がなくなってしまいます。これを防いでツマミも0の位置に合わせるにはどうすればいいでしょうか?
- 80 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:08:36 ]
- SwingUtilities.invokeLater
- 81 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 00:09:19 ]
- あと、e.getSource()とかやめた方がいい
- 82 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 01:22:26 ]
- SwingUtilitiesよりEventQueueを使ったほうがいい
- 83 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 01:22:52 ]
- ありがとうございます。
>>80 なんか振動?みたいな動きをしましたが、結局何も解決しませんでした。 >>81 なんでです?調べるキーワードも分からなかったんですが
- 84 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 02:10:06 ]
- >83
たぶん振動するのは 1.スライダーが動く 2.スライダーの値が0になる 3.マウスがスライダーの上にあるのでスライダーが動く これが繰り返されてるんだと思う。 スライダーをドラッグしたときどうしたいかがよくわからない、もう少し詳しく話してほしい
- 85 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:06:09 ]
- なんでそんな不便なUIをおつくりなのか、状況が把握できていないので、確実に悪とはいえませんが、、
Swingは、スレッドセーフではないので、操作するときは、invokeLaterは、ほぼ必須です。 ちなみに、invokeLaterは、SwingUtilitiesでもEventQueueでも一緒ですね。 スライダーがかたかたいうのは、 スライダーに値をセットする前に、 マウスをはなした事にするイベントを、 擬似的に発生させれば回避できるかと思います。
- 86 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:07:13 ]
- こんな感じで、スレッドが値と表示値を破壊しないようにできます。
if (EventQueue.isDispatchThread()) { SwingUtilities.invokeAndWait(runnable); }else { SwingUtilities.invokeLater(runnable); }
- 87 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:09:48 ]
- e.getSource()は、ソースを見てもどのスライダーなのか、把握できないので、お勧めしません。
JSlider jSliderXXXXXなどと、パネル(フレームでも)のメンバー変数として、準備し、 そちらへアクセスしましょう。
- 88 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 06:14:15 ]
- せめて、e.getSource()の使い道はこれくらいですかね。
if(e.getSource() == jSliderValueA) { jSliderValueA.hoge(); }eles if(e.getSource() == jButtonX) { jButtonX.setXXX(); }
- 89 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 10:06:54 ]
- JSlider#getValueIsAdjusting()の説明は読んだか?
- 90 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 13:36:15 ]
- JSliderの値を反映させないようにってことなら、MouseListener.mouseReleased()でsetValueすればいいんじゃない?
- 91 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 17:13:53 ]
- >>87
でももし、明らかな場合はいいよね?ローカル変数にコンポーネントのインスタンス作っては 無名リスナークラスを設定しまくってるから、数十行の間に全ておさまってるんだけど・・・
- 92 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 20:19:26 ]
- コンストラクタで渡すのが理想だけど、無名クラスならこういう風にすれば?
final JSlider target = slider; slider.add○○Listener(new ○○Listener(){ public void ○○(○○Event e){ target.・・・; }}); >85 SwingUtilitiesはEventQueueのカバーメソッドなのでなるべくEventQueueを使うように、とどっかに書いてあった
- 93 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 20:50:18 ]
- >>85
やっぱり不便ですね。皆さんありがとうございました。
- 94 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 22:43:21 ]
- >なるべくEventQueueを使うように
これswingの実装を知ってる必要があるんじゃね?
- 95 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 00:13:30 ]
- staticメソッド呼ぶだけだって。
EventQueueのカスタム化も大した労力ではないが。
- 96 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 10:51:30 ]
- TimerQueueがpublicなら・・・
- 97 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 11:57:09 ]
- 現在JTextAreaで入力を行っていて、入力時のイベントをDocumentListenerで受け取っているんですが、
漢字などの変換決定時に同じ文字のRemoveイベントとInsertイベントが飛んできてしまいます。 例えば"ねこ"を"猫"に変換するときに INSERT ねこ [変換する] REMOVE ねこ INSERT 猫 [変換決定] REMOVE 猫 INSERT 猫 まぁ、動作としては正しいのでしょうが、こちらのプログラムの仕様上どうしても最後の重複した猫が 大きな無駄になってしまうので、なんとか変換決定イベントを知りたいのです。 もちろんRemoveイベントも受け取らなくてはならないのでRemoveを無視すれば?というわけにはいきません・・・。 キーイベントかなんかで頑張るしかないのでしょうか?(バグが出そうですが)
- 98 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:12:59 ]
- InputMethodListener使ってInputMethodEventを見張る。
イベントのgetText()やgetCommittedCharacterCount()の長さを デバッグ文で観察しつつ、いろいろなかな漢字変換操作を試してみよう。 確定した瞬間をとらえる判定式が、おのずと導けると思う。 細かいことは忘れた。
- 99 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:31:52 ]
- 普通にprocessEvent辺りだと思うんだが何でそんな面倒に考えるの?
- 100 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 00:43:13 ]
- なんかややこしそうなので妥協します・・・
ありがとうございました
- 101 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 02:57:20 ]
- 上限4文字Maxの都道府県入力フィールドで
「わかやまけん」とか読みを入力するときだけリミッターを外すとか みんなしてないのかな?
- 102 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 03:02:32 ]
- 都道府県入力フィールドに入力制限なんてつけないもの・・・
表記ゆれが怖いからコンボボックスじゃない?普通
- 103 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 03:47:10 ]
- ある程度出来てから調整したほうがいいよ。
たぶん一から作り直しになるだろうけど、frameworkとかlibrary化するってのはそういうものだと諦めたほうがいいだろう。 その変換で無駄な感じとは思っていても、たいていは思ってたほどコストでもないからそのまま逝っちゃうってのがおおいけど。
- 104 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 04:24:47 ]
- 文字一つごとに膨大な計算をするのでフォントが複雑だと体感できるほどに遅くなることがあるんですよね。
入力中もリアルタイムで見た目を更新するので、うひゃ〜なんですけど、時間があればやります。ありがとうございました
- 105 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 13:20:12 ]
- 同じデータを用いて2つのテーブルを作りたいのですが、
1つのフレームに複数のテーブルを設置する事は出来るのでしょうか? また、フレームを2つ作った場合、片方のテーブルのデータを変更した時に もう片方のデータも同時に自動で変更するという事は出来るのでしょうか?
- 106 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 14:01:37 ]
- >105
同じデータを使ってTableModelを作ればいいだろう JTable自体は二つ、TableModelを共通のものとかにすれば自然とそうなるんじゃないか?
- 107 名前:ウォシュレットのアームめがけて排便する俺 ◆06NY4sFIG. mailto:sage [2010/01/04(月) 20:33:06 ]
- >>105
JavaAPIのJavadocからもリンク張られてるけど、 java.sun.com/docs/books/tutorial/uiswing/components/table.html#data あたりも読んでみては。 106の方も言ってるけど、 この図のうち、 (TableModelやAbstractTableModelを継承した)Table Model Objectを1インスタンス、(JTableを継承した)Table Objectを2インスタンス作る。 んで、2つのTableのイベントリスナを同じModelに登録(addTableModelListenerメソッド)しとけば、 Model変更時にfireTableDataChangedみたいなメソッドで双方のTableに通知できる。 入力に使った方のTableも、入力イベントじゃなくて、 もう一方の方と同じようにfireイベントで更新しないといけないんじゃないかな。 (入力イベントで行うのはModelの更新だけ。もちろんModelの先にあるTable Dataも更新されるだろうけど。)
- 108 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:34:19 ]
- ID、パスワード用のテキストボックスがメインのログイン画面があり、
htmlみたいにデザインを変更したいとの要求が上がっています。 Swingのhtml的デザインってどこまでできるのでしょうか?
- 109 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 11:33:11 ]
- >>108
HTMLを使ったSwingコンポーネントのレイアウトは無理。 Swingの各種LayoutManagerのレイアウト機能はHTMLやCSSよりはるかに優秀。 リキッドデザインとかお手の物。CSSハックとかバカバカしくなって、戻れなくなるよ。
- 110 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 11:44:16 ]
- htmlはcellも少ないしテーブルでいいのかなって思うけど何がダメなの?
- 111 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 12:36:16 ]
- だめなとこなんかどこもないよー
でもswingのhtmlがレイアウトできるのはjavax.swing.text.Viewであって swingコンポーネント(JComponent)ではないんだ レイアウト周りのAPIは結構似てるけど。
- 112 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 12:54:59 ]
- 108です。
アドバイスありがとうございます。 cgiからアプレットに移行したシステムで、cgiがログイン画面をhtmlで変更できますよ、としていたので、 そのままの要求がアプレットにも上がってきた形になってます。 イメージとしては、表示したいhtmlの内容を設定ファイルに書いておき、 それをロードして、そのレイアウトでアプレットの画面を表示することをしたいです。 つまり、アプリ改修なしで好きなタイミングで好き勝手にデザイン変更することが求められ、 htmlに慣れているので、html以外のデザイン変更方法は受け付けない、というのが要求です。 凝ったことはしない+入力部品はID、パスワードだけで、増減はなしです。 Swingに取り込むときの設計イメージがわきません。アドバイスいただければと思います。
- 113 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 12:56:51 ]
- >>112
文がおかしかったので、 cgiがログイン画面をhtmlで変更できますよ ↓ htmlでできているのでログイン画面を自由にで変更できますよ
- 114 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 13:07:47 ]
- それでいくらくれるんですか?
- 115 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 13:11:30 ]
- DQNはweb何とかだけやってればいいのかなって思うよ。やっぱり改めてそう思った。
- 116 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 13:14:25 ]
- そういえばJWebPaneってJava7に入るのかな。
>>112 もしその機能が本当に重要なのであれば、 ログイン画面はApplet化しないでウェブブラウザに任せる、つまり htmlのままおいておくべきだとおもうけど。
- 117 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 14:58:19 ]
- ↓こういう取り組みもあるけどね。
ikemen.googlepages.com/htmltablepanel でもなー、客のレベルも相当アレそうで先が思いやられるので、 難癖付けて断るのがベストだと思う。
- 118 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 15:33:54 ]
- >>117
うおおお、これはすごいですね。 イメージが付いてきました。
- 119 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 19:32:01 ]
- こういうDQNってさ、なにげなく白い奴のしゃぶりをやっちゃって、もうフィックスしちゃってんだろうなと思った。
- 120 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 19:39:10 ]
- 狂牛病に取り付かれたスポンジ脳と同じで、脳味噌スカスカって感じはするよね。
- 121 名前:デフォルトの名無しさん [2010/01/08(金) 19:45:08 ]
- うおおお、
- 122 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 02:01:21 ]
- 仕事で飯喰うなら、こんな所に丸投げするなよと思う。
そのうちhtmlをswingになんてアフォフレームワークを売り物にしてくる業者が出て来たら(ry
- 123 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 11:59:50 ]
- >>122
仕事増えるならいいじゃん。 仕事ください
- 124 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 23:52:11 ]
- JTextComponentのサブクラスは文字を表示することができますが、
文字列の座標情報?などはどうやって管理しているのでしょうか? JTextComponentはDocumentインターフェイスに依存しているところまではわかるのですが、 そのあとがイマイチわかりません
- 125 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 07:44:57 ]
- 何をしたいの?
解析したいだけならデバックすれば?
- 126 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 11:26:39 ]
- 座標はViewが管理してます
ViewFactoryにDocumentのElementを渡して作ってもらいます
- 127 名前:124 mailto:sage [2010/01/13(水) 21:09:05 ]
- >>126
確かに、viewで管理しているみたいですね(さっき、軽く読みました) ところで、どうやって文字を表示しているんですか? java.awt.graphicsは使っていないみたいなんですが
- 128 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:32:08 ]
- なんかデジャヴが・・・ 前にJTableについて訊いてた人と一緒? まぁどっちでもいいけど
JButtonとかJTableとかJTextComponentとかSwingにあらかじめ用意されてるコンポーネントはみんな、 自分では描かずにButtonUIとかTableUIとかTextUIとかに処理を委譲している だからJButtonとかJTableとかJTextComponentとかの方には表示関係のコードやマウス・キー処理のコードはない ButtonUIとかTableUIとかTextUIとかの方にはルック&フィールごとに異なったサブクラスがあって(MetalButtonUI,等)、 それらがルック&フィールごとに異なった内容を表示し、ルック&フィールごとに異なったマウス・キー処理をしている 見るならそっち側
- 129 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:39:38 ]
- >127
View#paint(Graphics g,Shape allocation)ってあるよな? ちなみにTextUIってのは単なるViewFactoryだ。
- 130 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:41:49 ]
- すまん。「BasicTextUIはTextUIを継承したViewFactory」の間違いだ。
- 131 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 22:30:28 ]
- >>128-129
ありがとうございます
- 132 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 19:29:12 ]
- JPanelで、paintComponent(Graphics g) をオーバーライドして描画を行う際
描画範囲がJPanelのサイズを超えた場合、自動でJPanelのサイズを拡大するには どうすればよいですか?
- 133 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 19:33:46 ]
- getPreferredSizeもオーバーライドして、描画範囲が超えないようなサイズを計算して返す
- 134 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 08:00:54 ]
- getPreferredSizeに頼るとほとんどsetSizeが無効になりますよね?
setSizeでセットしたサイズ内で収まるようにするプログラムしたいときはnullレイアウトしかないのでしょうか。
- 135 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 08:36:51 ]
- getPreferredSizeがsetSizeしたものより大きな値を返さないようにするとか。
- 136 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 09:59:25 ]
- 1.誰かがgetPreferredSize()呼んできたので100x100を返した。
2.そしたら誰かがsetSize()に80x80を渡してきたので不本意ながら従った。 3.そしたら誰かがクリップ領域10x10+20+20にしてpaintComponent()を呼んできた。 こんな状況? クリップ領域は気にせず半径500の円弧だろうがなんだろうがガンガン描いたらよろしい。 どうしてもクリップ領域大きくしたいならrepaint(x,y,w,h)だけ呼んで paintComponent()を終わらせればまたいつか新クリップでpaintComponent()が呼ばれる。 paintComponent()中にどうしてもコンポーネントサイズを大きくしたくなったなら revalidate()だけ呼んでpaintComponent()を終わらせる。 そのうちgetMinimumSize()が呼ばれるので希望サイズを返す。 getPreferreSize()やgetMaximumSize()が呼ばれてもInteger.MAX_VALUEを 返しておけばいい。 やがてsetSize()が呼ばれるだろう。もし希望が叶わなくてもここは絶対服従。
- 137 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 10:34:24 ]
- いや違うんです。
なんか誤解してるようですが、newしたときとかでその初期セットサイズ setSize(a,b)のまま固定しておきたくて、 基本的にサイズのは変更を許さず、resizeとかのレイアウト変更によって初期セットサイズを変更されたくないって意味です。 場合によっては縮小のときだけは許すが、拡大はmax sizeはsetSize(a,b)まで。 そういうときはnullレイアウトしかないのでしょうか。 レイアウトマネージャ使うとsetSizeの設定は実質意味をなしませんよね。
- 138 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 10:43:42 ]
- paintComponentでやるしょりか?
- 139 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 10:52:20 ]
- getPreferreSize()だろうがsetSize()だろうが実際はフレームと配下のコンポーネントのバランスをLMが勝手にとるから
AWTならnullレイアウトでいいけどSwingだと修飾がJava2Dだからなぁ。 ゲームだとGUI自前だしCanvasのサイズを強制したいからnullレイアウト使うがね。
- 140 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 11:04:06 ]
- >>138
あまり分かってないようだけど、setSizeの質問ではswingはまったく関係ないよ。
- 141 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 18:29:29 ]
- >>140
描画中にリサイズしたらイベントキューが理論的に順番めちゃくちゃにならない?
- 142 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 19:04:26 ]
- JComponentのpaint(Graphics g)とprint(Graphics g)ってどう違うの?
- 143 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 21:02:39 ]
- printって印刷だぜ?
- 144 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 23:15:21 ]
- JTabbedPaneにadd("タイトル", JTableのインスタンス)を5回しています
JTableの列幅に変更があった場合、addした5つ全ての列幅を変更したいと考えています どのように、すればよいのでしょうか?
- 145 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 11:01:06 ]
- 幅だけじゃなくて列の属性が全部同じなら、全部のJTableで1個のTableColumnModelを共有する
- 146 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 20:47:58 ]
- >>145
thx
- 147 名前:デフォルトの名無しさん [2010/01/27(水) 06:05:30 ]
- Swingでゲームを作る人がいないのはなぜですか?
- 148 名前:デフォルトの名無しさん [2010/01/27(水) 06:12:28 ]
- ゲームを作るのに便利なライブラリ (画像効果など) とか手厚く用意されてるわけじゃないから。
- 149 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 16:49:41 ]
- fillRectで塗った色はprintComponentで再描写しても消えないの?
- 150 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 01:27:41 ]
- コンポーネントの描画に関して、何か誤解をしているように見える。
- 151 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:22:26 ]
- NetBeansみたいなフォームデザイナってビジネスで使えるの?
IDEのバージョンアップでデザイナそのものが使えなくなるかもとか考えると怖い。
- 152 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 12:14:53 ]
- GridBagLayout手書きしか使わんなー。
もちろん直接じゃなくて、ビルダークラス挟むけど。 builder.setContainer(container); builder.setResourceBundle(resourceBundle); builder.weight(0,0).addLabelResource("some.resource"); builder.weight(100,0).colSpan(2).add(new JButton(action)); builder.nextRow(); みたいな感じで。
- 153 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 20:46:47 ]
- 手書きなの?
1.6からだけど、手書きならgroup layoutとかいいよ。 grid bagのさらにパワーアップしたレイアウトだからそのブルダークラスとやらと同じ感じで設定できるだろう。
- 154 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:51:42 ]
- JOptionPane の「OK」「キャンセル」みたいなデフォルトのラベルリソースってどこかから取れない?
JOptionPane でキャンセルボタンにデフォルトのフォーカスを置きたいのでユーティリティメソッド 使わないで書いていったんだけど、ボタン名を自分で指定しなきゃいけないのかな。
- 155 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 00:26:41 ]
- うちMacなんでAqua LaFのしか見当たらないんだけど、
com/apple/laf/resources/aqua.properties (他数言語)に OptionPane.yesButtonText=Yes OptionPane.okButtonText=OK などと書いてあるなあ。
- 156 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 00:32:52 ]
- javax.swing.UIManager.getString(キー)
で取れそう。 ところで、 ttp://sites.google.com/site/shin1ogawa/java/swing/joptionpane-default-focus なんて見つけた。
- 157 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 01:28:10 ]
- >>154
"OptionPane.yesButtonText" "OptionPane.noButtonText" "OptionPane.cancelButtonText" "OptionPane.okButtonText" これらをキーにして UIManager.getString(String) を使う。 ロケールも指定すれば、各国語にローカライズされたテキストも取れる。 UIManager.getString("OptionPane.cancelButtonText", Locale.ENGLISH) は "Cancel" を返す。
- 158 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:03:35 ]
- JPopupMenuにたくさんのメニュー項目を入れると、メニュー項目が画面の縦幅に入りきらなくなります。
自動的に上下にスクロールとか、2列にするとかの仕組みはありませんでしょうか。
- 159 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:51:22 ]
- >>158
こんなの見つけた。動作は見てない。 www.beginner-java-tutorial.com/scrollable-jpopupmenu.html
- 160 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:17:17 ]
- マカってホント情報弱者だな。
|

|