- 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
- 2 名前:デフォルトの名無しさん [2008/11/21(金) 11:25:06 ]
- VisualStudioのようなポトペタ開発環境がほしい!!
NetBeans www.netbeans.org/index_ja.html Eclipse+VisualEditorPlugin www.eclipse.org/ www.eclipse.org/vep/ Jigloo cloudgarden.com/jigloo/index.html
- 3 名前:デフォルトの名無しさん [2008/11/21(金) 11:25:58 ]
- AWTもターゲットに入ってていいんだよね?
Q. AWT と Swing 混ぜちゃ駄目って聞いたんですけど 混ぜちゃ駄目なんですか・・・・? A. 今まででは、「駄目」というのが正解です。 が、現在開発中(未リリース)のバージョンではSwingとAWTの混在ができるようになっています。 正式リリースがされるまで、情報の錯綜があって混乱すると思いますが 普通の人にとっては「まだ駄目」という状況だと思ってください。 Q. Nimbusって何よ。 A. 次期Swingの標準となるとされているLAFです。 元々は、SUNのGnome環境のテーマに使われていた見た目を移植したものになります。 実装にはXMLベースでLAFを定義できるSynthLookAndFeel を利用しています。 jdk6の開発版で試す事ができます。 Q. こんなプログラムを作れって言われたんですが・・・ A. 宿題スレへどうぞ。 Q. なんでスレタイに低速って入ってるの? A. まだまだ速くなるってことさ。
- 4 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 11:37:19 ]
- GUIの質問なので、再度書き込みします。
こんなGUIのフォームを作りたいんですが、 その中でいくつか質問があります。 テーブルA ボタン テーブルB ID Name ID Name [1 ][A ] [1 ][E ] [2 ][B ] (追加) [2 ][F ] [3 ][C ] (削除) [3 ][G ] [4 ][D ] [4 ][H ] 1.テーブルID項目は非表示にさせたいけど方法をおしえていただけませんか? 2.テーブルAセルを選択した状態で追加ボタンをおしてテーブルBに追加したいんですが、 選択したセルの情報を取得する方法をおしえていただけませんか? 以上です。よろしくお願い致します。
- 5 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:36:18 ]
- 1.必要なデータを提供するモデルを実装する。
2.JTable#getValueAt(row,col)
- 6 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:38:33 ]
- あ、選択した行、列はJTable#getSelected〜で。
API読めよw
- 7 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:55:57 ]
- >>6
ありがとう御座います。 兆しがみえたのでちょっとやってきます。 >API読めよw これってSunのクラス説明のこと?
- 8 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 21:52:00 ]
- >>4のレベルだとリファレンスマニュアルよりもまずswingの参考書を
一冊読んだほうがよさそうな気がするなw
- 9 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 23:34:02 ]
- くだらん嘲笑するぐらいなら
ちょっとのヒントぐらい書いてやればいいものを
- 10 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 19:41:01 ]
- ヒントってか>>5で答がでてるじゃん…
あと参考書読んだ方がいいってのもヒントだと思うけど…
- 11 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 20:59:12 ]
- >>10
>9はもっと丁寧に、そして空気を悪くするなって言いたいんでしょう。たぶん。 >>4 選択したセル番号を直接得ることはできないけど、選択した行と列を得るメソッドとして それぞれgetSelectedRowとgetSelectedColumnというのがあります。
- 12 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 21:07:50 ]
- 答え既にでてるのにお疲れ様です。
- 13 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 13:10:06 ]
- APIリファレンスを読んでから質問しましょう。
Java 6 java.sun.com/javase/ja/6/docs/ja/api/ Java 5.0 java.sun.com/j2se/1.5.0/ja/docs/ja/api/ Java 1.4.2 sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/
- 14 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 13:25:22 ]
- >>13
APIリファレンスってSwingの使い方がわかる人にしか意味ないし、 そういう人はたいてい質問してこないんじゃ・・・
- 15 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 15:16:17 ]
- あのー、JFrameを勧める人が多いんですけど(swingなので当然ですが)、JFrameはスレッドがらみでダメダメって話があるんでやっぱりダメなんですか?
- 16 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:13:29 ]
- >>15
お前が何をしたいのかが分からない よって答えも出せなければ相談にも乗れない
- 17 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:16:06 ]
- ダメなんですか
やめておきます っていうレスの後押しが欲しいんだろ
- 18 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:34:38 ]
- なんか殺気だってますねこのスレ。結局・・・人生ってのは孤独なものなのでしょうがないんでしょうか・・・
- 19 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:52:40 ]
- >>18
同意して欲しいのかい?構ってちゃん
- 20 名前:デフォルトの名無しさん [2008/11/24(月) 16:58:56 ]
- 慣れてくれば、JInternalPaneとかJAppletでやって、それを最後にFrameとかに貼り付けるかな。
- 21 名前:デフォルトの名無しさん [2008/11/24(月) 17:02:46 ]
- >JInternalPaneとかJAppletでやって
何をやるの?
- 22 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 20:35:57 ]
- 流石に>>15は釣りだろ…
- 23 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 21:01:58 ]
- >>15は真性で
>>18が釣と見た
- 24 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 09:54:16 ]
- V2C使ってみてSwingすげーと思った
- 25 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 11:40:35 ]
- おまいら jEdit つかわんのか?
- 26 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 16:39:48 ]
- >>23
いや、20だろ、釣りは。
- 27 名前:デフォルトの名無しさん [2008/11/25(火) 22:33:13 ]
- あほっても誰も構ってくれないなんか淋しいよな・・・
- 28 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 22:57:44 ]
- JTextAreaの幅のみを固定して使いたいのですが、setPreferredSizeを使うと、
高さも固定されてしまいます。何か良い方法は無いでしょうか。
- 29 名前:デフォルトの名無しさん [2008/11/25(火) 23:06:15 ]
- ありません。
- 30 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 23:15:25 ]
- おお…、無いですか。ありがとうございました。
- 31 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 23:42:14 ]
- JComboBoxについて質問させてください。
現在、コンボボックスのプルダウン時の表示項目を 個別にDISABLEDにさせられる様にしようとしてます。 表示はCellRendererでどうにかなったものの、マウスで DISABLEDにした項目をクリックすると選択が出来てしまいます。 この現象を防ぐためにはどのようにすればいいのでしょうか? よろしくお願いします。
- 32 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 00:30:08 ]
- java.sun.com/docs/books/tutorial/uiswing/dnd/droplocation.html
この例のようなやり方で自作コンポーネントへ、TransferHandlerによるDnDでドロップ位置の表示を行おうとしています。 この方法でsetDropLocation(←自作コンポーネントに作成したアクセサ)によりDropLocationを設定すべき場所は、TransferHandler内ではどの場所でしょうか? 入力しようとするときに表示させるものなので、現在は TransferHandler#canImport(TransferSupport) 内でsetDropLocation(support.getDropLocation()) としています。 一応表示はされますが、この方法ではドロップターゲットが変わった場合にsetDropLocation(null)とできないため、ドロップ位置の表示が消えません。 何かドロップ位置を表示するスマートな方法はありませんでしょうか?
- 33 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 11:00:19 ]
- JListはsetListData()でオブジェをセットできますが、
JTableはなにを使えばオブジェをセットできますか?
- 34 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 11:51:40 ]
- >>28
JTextArea を入れるコンテナのレイアウトを工夫する。 たとえば BorderLayout では EAST と WEST のコンポーネントは 横幅が preferred size の横幅に固定され、 高さはコンテナのサイズによって変わる。
- 35 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 12:13:47 ]
- JWindow上のコンポーネントのツールチップを表示させるにはどのようにすればよいのでしょうか?
- 36 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 12:35:26 ]
- >>35
普通はどうやってるの? JWindowでだけ特殊だという意味? ツールチップの設定の仕方自体を知らないという意味?
- 37 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 12:38:26 ]
- いえ、普段JFrameにコンポーネントのせていて、元々対応していないものであればToolTipManagerで登録して・・のような流れで表示させていたのですが、JWindow(JFrame以外のwindow?)にのせてみると表示されなくなったのです。
- 38 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 12:58:28 ]
- >>37
普通の使い方は、JComponent#setToolTipText()でしょ。 で、うろ覚えだけど、JComponent#setToolTipText()でString引数がnullかどうかで、 ToolTipManagerに登録(registerComponent(JComponent),unregisterComponent(JComponent))されるように実装されてたはず。 なので、 >元々対応していないもの これの意味が分からない。 ToolTipManagerはそもそも、JComponentしか受け付けないはずだし、 JComponentであれば、ツールチップを表示させられる。 であるのに、元々対応していないものとは? あとは、JFrameを使用しているほうのバージョンでは、 setInitialDelay()等のhogeDelayプロパティを変更しているとか。 ツールチップを無効にしているとか。 JFrameを使用しているほうのバージョンとJWindowのコードとの差を検査した方が良いと思う。
- 39 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:17:37 ]
- >>37
38です。 ちょっとコード書いてみたけど、たしかに動かない。。すまん。 JWindow,ToolTipManagerのソース見たほうが良いかも。 class Hoge{ public static void main(String[] args){ JWindow window = new JWindow(); //JFrame window = new JFrame(); JButton buton = new JButton("Button"); buton.setToolTipText("tip"); window.getContentPane().add(buton); window.setBounds(0, 0, 450, 450); window.setVisible(true); } }
- 40 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:20:43 ]
- >>39のコード
EDTで起動してないとこは大目にみて、修正してね。
- 41 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 13:53:35 ]
- 理由はよく分からないけど、
Frame を表示させないで Window だけを表示すると ちゃんと動作しないことがある。
- 42 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 20:29:30 ]
- ownerなしのJWindowだと、フォーカスが取れないからじゃね?
JFrameで setUndecorated(true) と setAlwaysOnTop(true)くらいやっとけば、代わりになるんじゃね?
- 43 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:15:51 ]
- Jtableって何行まで行があるとかわかるクラスある?
あったら教えて。
- 44 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:27:27 ]
- >>43
行数なら、JTable,TableModelだけど、 言ってるのは、多分、有効なデータがある最大行インデックスってことだと推測するなら、 そんなapiありません。
- 45 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:39:15 ]
- JTable自体にメソッドついてるよ、getRowCount()が。
- 46 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 23:47:01 ]
- >>45
JTable#getRowCount()やTableModel#getRowCount()じゃなく、 これ系統の話じゃないのか ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47155&forum=7&14
- 47 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:05:16 ]
- 「Jtableって何行まで行がある」かとしか読み取れない
- 48 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:50:48 ]
- そうか。
個人的には「何行ある」と「何行まで行がある」では違うと思うけど。 本人じゃないから分からないけどさ。
- 49 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:59:26 ]
- 43の教えてクンぶりはあまりといえばあまりなんだけど
「何行ある」と「何行まで行がある」は双方どう違うのか興味が出てきた
- 50 名前:デフォルトの名無しさん [2008/11/27(木) 01:02:41 ]
- 平和だな〜
- 51 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:50:13 ]
- JTextFieldに入力した文字をリストに格納したいんだけど、
JTextFieldの入力が終わったって判断するにはどうしたらいいんだ? イメージではフォーカスがかわった時イベントを起こすようにしたいんだけど
- 52 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:55:27 ]
- addFocusListenerでいんじゃね?
- 53 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 11:01:45 ]
- focusLost使ってフォーカス変わったタイミングで格納するわ
- 54 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:55:10 ]
- >>51
エンターを押してもらう
- 55 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 19:58:14 ]
- JFormattedTextField を文字列(または空文字列)でコンストラクトし、
value に関するプロパティのイベントを捕捉すれば、いい感じかも。 フォーカスが外れたりリターンキーが押されたりしたときに (文字列が変わってれば)イベントが発生するっぽい。
- 56 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:02:32 ]
- 現時点において、世間で一番成功したSwingアプリってなんだろ?
CabosってSwingアプリだっけ? ム板で聞いてもバイアスがかかると思うので、 IDE各種(Eclipse, NetBeans, etc)と2ch専ブラ(V2C,etc)は却下。 いやさ、実行系絡みのトラブルシュート対策のページを パクらせてもらおうと思って。
- 57 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 13:38:15 ]
- V2Cだろ
- 58 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 13:48:43 ]
- jEdit だろ
- 59 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 03:43:20 ]
- limewire
- 60 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 04:37:51 ]
- 外為どっとコムww。なぜかFirefoxで動かないけど。
やっぱリアルタイム性のあるとこかな
- 61 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 09:11:32 ]
- jude
- 62 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 19:08:08 ]
- JListにはJTreeみたいな編集機能はないんかの?
アイテムの名前変更できるようにしようとして、ぐぐってもなんも引っかからんぜ
- 63 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 19:31:01 ]
- ないなぁ
けど実装はそんなに難しくないよ JTableを1列で、とかだめ?w
- 64 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 20:19:02 ]
- 実装は難しくないのか。
まだ容易されてる入り口と、ぐぐって出てくる手法でしか作ってないから想像もつかないぜ JListとJTableを組み合わせて使ってるから、JTableのアイテムを編集させてみる。 気が向いたら、その難しくない実装とやらをがんばってみるかな
- 65 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 20:48:41 ]
- JTableのソースを見て、CellEditorを中心に見てみると結構参考になるかも。
- 66 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:47:32 ]
- JScrollPaneのViewportViewにJTreeを二つ設置したJPanelを指定したのですが
スクロールペインの中央にJTreeが並んでしまって困ってます BoxLayoutでJPanelにJTreeを設置するとテキストがまともに表示されない(後半が途切れる)ので GridBagLayoutで白紙のパネルをJTreeの下に設置し、JTreeを左上になんとか表示してます こんな無理矢理な方法を使わず、素直にJTreeを二つスクロールペインの左上に設置する方法は無いでしょうか? 何方かご教授下さい…
- 67 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:48:33 ]
- 今ひとつ分からないけどこれでだめ?
JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JPanel viewportView = new JPanel(new FlowLayout(FlowLayout.LEFT,0,0)); JTree tree1 = new JTree(); JTree tree2 = new JTree(); viewportView.add(tree1); viewportView.add(tree2); frame.add(new JScrollPane(viewportView)); frame.pack(); frame.setVisible(true);
- 68 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:50:03 ]
- みすってたー
JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); FlowLayout fl = new FlowLayout(FlowLayout.LEFT,0,0); fl.setAlignOnBaseline(true); JPanel viewportView = new JPanel(fl); JTree tree1 = new JTree(); JTree tree2 = new JTree(); viewportView.add(tree1); viewportView.add(tree2); frame.add(new JScrollPane(viewportView)); frame.pack(); frame.setVisible(true);
- 69 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 22:15:15 ]
- >>68
ありがとうございます!明日試してみます!…ノートPC持って帰ってくるの忘れたorz 口で説明しても伝えられない気がしてきたので簡易ながら図解にしてみました。 ttp://toku.xdisc.net/cgi/up/ttt/nm6024.jpg.html 上の理想像のように配置したいのですが、BoxLayoutだと下図のようにテキストが途切れます…
- 70 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 22:46:19 ]
- JTreeを2つ使う理由がわからん。
JTreeを1つで、setRootVisible(false)にすればええやん。
- 71 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 06:45:15 ]
- こんな感じかな
panel.setLayout(new BorderLayout()); panel.add(tree1, BorderLayout.NORTH); panel.add(tree2, BorderLayout.CENTER); scrollPane = new JScrollPane(panel);
- 72 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 19:34:31 ]
- >>70
それやったら何も表示されなくて… JTree二つあった方がラクかなぁ?と思って組み始めたんです。 >>71 tree2が中央に来ました…orz
- 73 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:30:24 ]
- >>72
>>70 でやったときにTreeNodeが表示されないと言っている?TreeModelの使い方は理解してる? ここ↓をひととおり読んでみた? java.sun.com/docs/books/tutorial/uiswing/components/tree.html
- 74 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:31:32 ]
- いつの間にか jdk 6u11 が出てるな…
- 75 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:49:36 ]
- 今日JavaFXリリースだというのにまったく盛り上がってないなw
- 76 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:53:24 ]
- 忙しくて試す時間ないんだけど、どんな感じ?
- 77 名前:デフォルトの名無しさん [2008/12/05(金) 05:22:12 ]
- もういらねーんだよ。うじゃうじゃとアホなスクリプト言語とか。
- 78 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 12:47:42 ]
- JavaFX結構おもしろいじゃん
ただ何やってるか分からんけど起動がえらい遅い
- 79 名前:デフォルトの名無しさん [2008/12/06(土) 23:29:05 ]
- ブラウザからデスクトップにドロップするやつ試したやついる?
あとアニメとかはどうだ。滑らかに動くのか。 とにかく生情報がほしいな。 自分はOSバージョンの関係で試せないけど、試したやつ報告よろしく
- 80 名前:デフォルトの名無しさん [2008/12/07(日) 01:58:37 ]
- JavaFXはスレ違い
- 81 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 02:03:37 ]
- Java FXってGUIはSwingそのものなの?
- 82 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 02:17:15 ]
- このスレの解答者はカスしかないけどから一応こたえてやると・・・
siwngはjavacでコンパイルされてバイトコードになるためjvm共通のwidgetになるから javafxcでJFrame{}とかすれば当然JFrame.classが呼ばれてswingそのものを呼び出しているといえる。
- 83 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 07:32:52 ]
- 「WOLF RPGエディター」とは?
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。 ・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに 慣れた人やRPGツクールでは物足りないけどプログラミングはちょっという方にお勧め。 ・作成したゲームは自由に配布したり、コンテストに投稿することも可能。 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ! ・要望、不満点、バグ報告などなど書き込みお願いします。今もどんどん進化中です。 ・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので 一度サイトにお越しくださいませ。 ・このツールで作ったゲームをサイトで紹介してるから、ダウンロードしてどういう ゲームが作れるのか見てみてね。 2ちゃん本スレ pc11.2ch.net/test/read.cgi/gamedev/1226294070/l100
- 84 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 14:02:31 ]
- このスレの解答者はカスしかないけどから
このスレの解答者はカスしかないけどから このスレの解答者はカスしかないけどから このスレの解答者はカスしかないけどから このスレの解答者はカスしかないけどから このスレの解答者はカスしかないけどから
- 85 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 14:36:13 ]
- >>84
>>82 の回答を見ると納得してしまうなw
- 86 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 14:38:40 ]
- >>84
×解答 ○回答
- 87 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 15:51:51 ]
- そろそハードウェア対応のCompositeを増やしてくれないものか…
加算半透明が欲しいけど、そういう人は少ないのかなあ。
- 88 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:07:38 ]
- javafxはどこで話せばいいの?
- 89 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 17:21:02 ]
- ここかJDK7のスレッドだろうね
- 90 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 19:26:39 ]
- jdk1.4からpaintが改善されてきてjdk1.6でほぼnativeと同等になったから、そろそろそういうブレンドとかのクラスも出てくるんじゃないか?
今はCPUに計算させて力でごり押しでもいいだろうけど、本来のやり方は力業計算はjoglとかハードの方を使って(経由して)計算させるものなのかと思う。 そういうの説明してるサイトはあまりないけどね。
- 91 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:36:37 ]
- すごく初歩的なことかもしれないんですが、packって必ず呼ばないといけないんでしょうか?
- 92 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:53:12 ]
- いいえ
packしたい時に呼べばいいだけです
- 93 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:33:58 ]
- packは使うべきかどうかどう判断すればよいのでしょうか?
- 94 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:45:50 ]
- packがやることは分かる?
- 95 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:53:31 ]
- 各コンポーネントの推奨サイズを見て、ウィンドウ全体のサイズを決定、でしょうか?
- 96 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 23:12:21 ]
- ウィンドウを推奨サイズにしたい場合は pack()
自分でサイズを指定したい場合は setSize() とか setBounds() とか
- 97 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 19:16:25 ]
- JDK1.6u11になってNimbusを今まで作ってきたアプリでためしてみたんだが微妙だなぁ。
こっちの書き方も悪いんだけど、それを差し引いてもあちこちにデザインの破綻が起きる。 画像アイコンを入れたボタンやカスタマイズした部品の修正が大変。 Metalのほうが細かい操作面や様々なケースで、神経が行き届いていたように思われ。
- 98 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:19:01 ]
- addElement
public void addElement(Object obj)指定されたコンポーネントをリストの末尾に追加します。 パラメータ: obj - 追加されるコンポーネント DefaultListModelのaddElementのリファレンスを読んでコンポーネントも追加できるのか…?と思い JPanelをaddしてみたんですが、文字列らしきもの(ポインタ的な何か…?)が表示されるだけで上手く行きません。 そもそもコンポーネントの追加という意味を私が取り違えているのでしょうか?お教え下さい
- 99 名前:デフォルトの名無しさん [2008/12/09(火) 22:29:41 ]
- 普通はUIを頻繁に変えたりしない思うけどね。
昔のxのウィンド・マネジャの乱立とかwinデスクトップテーマの流行を思い返す。 system uiのwinでぽっぽアップしたときのメニュー文字のギャップをもう少し広げてくれると win ui (win classic ui)とほぼ同じでハッピーなんだけど。
- 100 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:49:05 ]
- >>98
コンポーネントは広い意味でのコンポーネントって表現だと思う。 英語版のjavadocが"Component"になっているから、そう訳したんだと思う。 Objectが引数だから、JPanelだろうが、通常やらないだろうけど、Timerだろうが何でも格納はできる。 表現が的確か分からないけど、ListModelは単なるデータストアであって、 ListModelから取り出したデータを、どう表現するかはCellRendererの役目。 一度、java tutorialとかで基本的なところを勉強するといいと思う。
- 101 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:52:29 ]
- >>98
デフォルトのレンダラでは対応していないのでJPanelを要求通りに表示できるレンダラに変更
- 102 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:14:46 ]
- >>99
JMenuItemのsetMargin()とか呼んでみたら? ポップアップメニューのL&Fの更新ってプログラマーの責任だったっけ。 JComponent#setComponentPopupMenu()だけでは自動更新してくれなかった記憶が。
- 103 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 21:52:27 ]
- >>100-101
本当にありがとうございます。CellRenderer改変して無事に完成しました JPanel上にBorderLayoutでJLabelを2つ設置してそれを返すようにしたら想像通りのものに…! JLabelの背景色変更しても色変わらなくて、2時間程経ってからsetOpaqueの存在を知りました。 もっと情報検索を上手いとこ出来るようになりたいですorz
- 104 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 01:05:13 ]
- >>102
>ポップアップメニューのL&Fの更新ってプログラマーの責任だったっけ。 1.7.0で修正されたはず。
- 105 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 02:07:02 ]
- >>104
1.7か。遠い未来・・・でもないがまだまだだろうなぁ
- 106 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 03:32:06 ]
- javax.swing.undoではまったのでメモ。
例えば、文字列の置換のような削除、挿入という複数の処理を1回で元に戻したい場合は UndoManagerを入れ子にする。 UndoManagerを2つ用意して、基本はサブに追加する。一塊の処理が終わったらend()を呼んでメインに追加する。 void undoableEditHappened(UndoableEditEvent e) { sub.addEdit(e.getEdit()); if (!compound) { sub.end(); main.addEdit(sub); sub = new UndoManager(); } } ちなみに普通にUndoをするだけならリスナにUndoManagerを追加するだけで出来ます。 JTextField tf = new JTextField(); tf.getDocument().addUndoableEditListener(new UndoManager());
- 107 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 11:25:31 ]
- HTMLDocument/HTMLEditorKitってなんでこんなに使いづらいんだブツブツ…
- 108 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 12:36:19 ]
- >>107
わー、同士よ。使ってる人、他にもいたんだ。 6u10以降、javax.swing.text.html でちゃんと日本語HTML表示できている? WebKitベースの新APIが1.7で登場するという噂はどうなったんだ…
- 109 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 15:29:45 ]
- >WebKitベースの新APIが1.7で登場するという噂はどうなったんだ…
JWebPaneでしょ? JWebPane は、Java7からってことになってるけど、Java7は1年半後らしいからね、いつになるやら。 たしか、AIRはWebBrowserコンポーネントを提供してるから、 JavaFXがAIRに対抗するために、リリース時期が早まるんじゃないかと少し期待してる。
- 110 名前:デフォルトの名無しさん [2008/12/13(土) 16:33:11 ]
- JavaやってるとWindowsのexeが作れない。。
また、SwingやAWTの設計でGUI画面作るのもちょっといやだ。 Windows専用のJavaGUIライブラリどこかの会社でうまいことつくってくれないかな? できれば、Delphi作ってる会社が作ってくれたりするといい。MSでもいいけど絶対作ってくれ無そう。 最悪、Javaで作ったファイルをWindows用exeに変換してくれるだけでもいい。できれば、UIもWindowsっぽくして・・
- 111 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 16:40:45 ]
- そんな思いまでしてjavaで作らなくても
そういう要求って仕事でやってるわけじゃないよね
- 112 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 16:52:18 ]
- ネタ乙
- 113 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 17:41:15 ]
- >>110
Excelsior JET + SWT どっちにしろ Swing とは関係ないネタだ。
- 114 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 18:24:26 ]
- exewrapで十分だろ
Cocoaで作りたいとかいうならまだしもWindows寄りの設計って嬉しいか?
- 115 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 21:51:21 ]
- WinAPIもMFCも面倒なだけ
- 116 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 00:27:37 ]
- >>113
あるいはgcjという手もあるな。 Swingと関係ないのは確かにその通りだが。
- 117 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 01:18:32 ]
- >>110
>JavaやってるとWindowsのexeが作れない。。 つJSmooth >また、SwingやAWTの設計でGUI画面作るのもちょっといやだ。 どこら辺が気にいらんの? 俺、SwingやAWTからGUIに入ったんでよくわからないんだ。 .netもやってるけど、上っ面撫でてるだけならそんなに違わないと 思ったが。
- 118 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 01:43:49 ]
- だからネタだっていってんだろw
- 119 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 15:03:36 ]
- うまい方法が見つからないのでちょっと相談。コンポーネントの配置の仕方なんだけど。
JLabel [JTextField] JLabel [JTextField] というように、4の部品がならんでいる。 JTextFieldは、JFrameサイズに応じて幅一杯まで伸び縮みできるようになってほしい。 JLabelは文字列のサイズで固定されてほしい。 ただし、上段と下段でJTextFieldの位置をきっちり揃えたい。 GridBagLayoutだと、位置はきちんとそろうけど、JTextFieldが伸び縮みできない。 GridLayoutだとJLabelとJTextFieldの幅が等間隔に割り付けされてしまうのでだめ。 1段分をBorderLayoutのWESTにJLabel,CENTERにJTextFieldを入れ、GridLayoutで縦にならべると、 だいぶ希望に近づくが、JLabelに入る文字列の長さが異なると、JTextFieldの頭の位置が上下でそろわない。 なんかいい方法ないかなぁ・・・
- 120 名前:119 mailto:sage [2008/12/16(火) 15:10:57 ]
- それから
PreferredSizeでJLabelのサイズを固定する方法も考えられるけど、 LaFが変更されたとき崩れない保証がなくなるので、できるだけレイアウトマネージャだけで解決したい。
- 121 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 15:44:19 ]
- >>119
GridBagConstraintsを適切に設定してないんじゃないか public class Test { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setLayout(new GridBagLayout()); frame.add(new JLabel("Label 1:"), new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); frame.add(new JTextField(), new GridBagConstraints(1, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); frame.add(new JLabel("Label 2:"), new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); frame.add(new JTextField(), new GridBagConstraints(1, 1, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); frame.pack(); frame.setVisible(true); } }
- 122 名前:119 mailto:sage [2008/12/16(火) 19:16:21 ]
- >>121
ありがとう。 IDEのGUIエディタが生成したコードとにらめっこしたのですが、 weightx,weightyの値が1に設定されていなかったのが原因でした。 私はこまかいところに神経が行き届いていなかったようです。 勉強になりますた!
- 123 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:37:57 ]
- GroupLayoutが適切すぎる
- 124 名前:せっかく作ってみたので貼ってみるテスト mailto:sage [2008/12/16(火) 22:01:12 ]
- JFrame frame = new JFrame();
JLabel label1 = new JLabel("Label 1:"); JLabel label2 = new JLabel("Label 2:"); JTextField field1 = new JTextField(10); JTextField field2 = new JTextField(10); GroupLayout layout = new GroupLayout(frame.getContentPane()); frame.setLayout(layout); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(true); layout.setHorizontalGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup() .addComponent(label1) .addComponent(label2)) .addGroup(layout.createParallelGroup() .addComponent(field1) .addComponent(field2))); layout.setVerticalGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(Alignment.BASELINE) .addComponent(label1) .addComponent(field1)) .addGroup(layout.createParallelGroup(Alignment.BASELINE) .addComponent(label2) .addComponent(field2))); frame.pack(); frame.setVisible(true);
- 125 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:03:27 ]
- >>121
GridBagConstraints に引数付きのコンストラクタがあることを 初めて知ったよ。 IDEの吐くコードでのみ使えって、ドキュメントにはあったけど。 >>123 いつのまにか java.awt でないレイアウトマネージャが増えてくね。
- 126 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:58:56 ]
- JTabbedPaneでタブを表示させてるんだけど
特定の設定になった時はタブが5枚あったら、その3番目と5番目だけを非表示にしたいんだ setEnabledAtで選択不可には出来たけど、出来ることなら非表示にしたい… 機能的には選択不可で問題無いが、見栄え的に半端な位置のタブが選択不可になってるのはみっともなくて。 何か良い解決策は無いだろうか?orz
- 127 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 22:09:41 ]
- タブのペインをグレイアウトさせる。
- 128 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 11:38:28 ]
- タブを削除する
- 129 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 21:48:35 ]
- 実際に試してないから成功するか分からないけど、
非表示にしたいタブを getTabComponentAt() で取得して setPreferredSize() で推奨サイズをゼロにする。 あるいはサイズがゼロのコンポーネントを用意して setTabComponentAt() を呼ぶ。
- 130 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 21:54:38 ]
- >>127
リファレンス読んだけどやりかた分からなかったorz >>128 非表示にしても、タブ内のデータを見ることがあるから出きれば削除は避けたいんだ… >>129 おお、ちょっと試してみる!サンクス!
- 131 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:43:17 ]
- >>130
>>128がベストアンサーだと思う。 TabbedPaneの外でコンポーネントを自前で管理する。ってことだと思う。 管理といってもHashMapとかのコレクションで持っておくだけだけど。
- 132 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:01:02 ]
- >>131
なるほど… HashMap、名前は良く見るが使い方を知ろうとしてなかったorz ちょっと調べて色々試してみる。>>130,>>131ありがとう
- 133 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 08:23:39 ]
- HashMapを知らないというのはJava屋として絶望的だな。
- 134 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 09:00:24 ]
- HashMapを知らなくても営業できるほどフレームークにおんぶに抱っこだったのか?
- 135 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 09:09:50 ]
- フレームーク
- 136 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 09:19:36 ]
- ガッチャピン?
- 137 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:33:39 ]
- >>132
人に聞いてばかりで自分で調べたりしてないからだろう おまえの無能さが文章によく出てる
- 138 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 11:43:56 ]
- たった5個(実質2個固定)のタブ耳の管理にHashMapかよ。おめでたい話だ。
連想配列の実装したことあるのかい? これだからPerl厨は…
- 139 名前:デフォルトの名無しさん [2008/12/19(金) 12:10:43 ]
- HashMapも知らない奴が何かほざいてるよww
- 140 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 12:59:41 ]
- オレ、JSplitPaneのコンポーネント管理をTreeMapで実装してるぜ!
キーはもちろん"LEFT"と"RIGHT"さ!
- 141 名前:デフォルトの名無しさん [2008/12/19(金) 13:11:15 ]
- アルゴリズムとデータ構造も知らない奴がプログラミングしても通用する時代になったんだな。
- 142 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 15:27:10 ]
- 力業でもどうにかなるくらいに環境が豪勢になったからのう。
- 143 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 18:46:16 ]
- アルゴリズムとデータ構造も知らない奴がゲーム作りたいって巣くってるのがゲ製板だしな。
- 144 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 19:00:25 ]
- 昔と違ってハード性能がよくなったからソースが見やすくて何よりです
対応表片手にビット管理とかもう嫌だお!
- 145 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:24:16 ]
- ハッシュマップと連想配列って似たようなもんじゃねえの?
- 146 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:36:15 ]
- 呼び名が違うだけ辞書配列ともいう
- 147 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 02:49:51 ]
- ソースは頑張れば見やすく作れるようになっている。
チューニングする場所ってのは限られている。
- 148 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 14:38:42 ]
- スレッドを使ってGUIを更新(?)することについて質問です。
あるボタン(ボタンA)を押したら、新しいボタン(btn)が表示されるようにしたいと思っているのですが、 ボタンAを押しても表示されません。 ボタンを張りつけたJPanelのgetComponentCount()を使ってみると、 add()は正しくできてるようなのですが、それでも表示されません。 btn.repaint()をやっても表示されないのですが、 btn.setVisible(false) → btn.setVisible(true)とすると表示されます。 上のsetVisible()を使うのはスマートじゃないような気がして、 invokeLater()を使ってみたりもしたのですが、結局setVisible()を使わなければ表示できません。 新しくボタンを表示させるにはsetVisible()を使うしかないのでしょうか? 他に良いやりかたがあれば、教えてもらいたいです。 文章へたくそなので、一応ソースのURLも貼っておきますね。 クラスは3つで、それぞれ45行以下のテキストです。 www.geocities.jp/mshinke01/Test.java www.geocities.jp/mshinke01/ThreadTest.java www.geocities.jp/mshinke01/LaterThread.java
- 149 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:28:08 ]
- つ revalidate
- 150 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:56:28 ]
- 最初に>>149と同じようにrevalidateを試しましたが、他には
初めからsetVisible(false)でpanelにaddしておいて スレッドでsetVisible(true)にするのもうまくいきました。
- 151 名前:148 mailto:sage [2008/12/27(土) 18:44:27 ]
- >>149
>>150 返事ありがとうございます。 revalidateについて調べてみますね。 もし自分が理解できなかったら、>>150 さんの言う方向でやってみたいと思います。 ありがとうございましたorz
- 152 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 18:48:32 ]
- JComponent#setVisible()を呼ぶともれなくrevalidateが呼ばれる件について
- 153 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 15:45:53 ]
- Swingでインクリメンタルサーチを実現したいのですが、
便利なクラス(インクリメンタル用)みたいのものはあるでしょうか? 自力で実装しなければならないとき、ヒントになる手法があれば教えていただけないでしょうか?
- 154 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 16:15:20 ]
- Swing Hacks
- 155 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 22:57:10 ]
- どのコンポーネントでインクリメンタルサーチするの?
- 156 名前:デフォルトの名無しさん [2009/01/08(木) 00:23:41 ]
- JFrame#setLocation()が効かないんだけど、同じ現象遭遇してる人いる?
JFrame#setVisibe(true)の前でも後でも全然きかない。 JFrame#setLocationByPlatform()もだめ。。
- 157 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 05:15:38 ]
- 使用環境も書かず、どう効かないか、最初からなのか何かのきっかけでそうなったのかも書かず。
ウインドウマネージャ次第では強制的に再配置している可能性も。
- 158 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 12:51:45 ]
- >>153
>Swingでインクリメンタルサーチ Googleのクエリ候補表示みたいな事を コンボボックスでやりたいのかな? それともいわゆるEmacsみたいなインクリメンタルサーチ をJTextComponentで実現したいのかしら?
- 159 名前:156 [2009/01/08(木) 19:25:06 ]
- >>157
すまん、 実行環境はWinXP、 開発環境はEclipse3.4 ビルドはJDK1.6.0_03、 実行JREは1.6.0_07に設定 現象は、どこにsetLocation()してsetVisible(true)しても画面左上にJFrameが表示されてしまう。 最初からです。 いかがなもんでしょう!?
- 160 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 19:39:57 ]
- >>159
ComponentListenerを使って、 いつ誰が左上に動かしてるのか見張ってみるのはどうでしょう。
- 161 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 21:26:46 ]
- レイアウトマネージャがよしなに配置してるだけじゃないの?
ソース晒せ。 ふるいやつだと、わざわざgetContentPane().setLayout()するのが面倒だなあ。 ヲレクラスで更にラップするのがめんどくさがりにはよさそうだ。
- 162 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 08:09:06 ]
- update 7ってバグ多くなかったっけ?
- 163 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 08:39:20 ]
- >>159
import javax.swing.*; public class Foo { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame f = new JFrame(); //f.setLocation(300, 300);//どちらか f.setLocationByPlatform(true);//どちらか f.setVisible(true); } }); } } みたいに単純化したものでも同じ現象になる? うちはWinXP+1.6.0_11だけど、setLocationでもsetLocationByPlatformでもきちんと機能する。 Windowsの標準シェルならウインドウマネージャが強制再配置するようなことはなさそうだし…
- 164 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 09:02:45 ]
- そこでHashMapを使うんだ!
- 165 名前:デフォルトの名無しさん [2009/01/10(土) 06:09:58 ]
- >>163
JFrameのコンテンツペインには何も追加しないの? コンテンツペインに追加したコンポーネントのpreferredSizeに スクリーンをはみ出さない程度のDimensionを設定したら、 setLocationがちゃんと効いた記憶があるんだけど。 違ってたらごめん。
- 166 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:08:05 ]
- コンポーネントなしのタイトルバーだけのJFrameでもsetLocationは効くのが普通だけど
>>159のソースが分からないことには何とも言えんから問題の切り分けってことなら >>163のようなものでも動作がおかしいのならJava環境かWin環境自体が変な可能性大だし 削ぎ落としたものは大丈夫なんだったら JFrame自身の位置情報に影響を与えるようなコンテンツが入れられているか 自分でも知らないうちに別の場所で位置を書き換えているようなコードを入れているかなので 差し支えない範囲でソースを出してもらわないと他の人間には判断のしようがないと思う
- 167 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 19:00:09 ]
- とりあえずソースを晒せ。それからだ。
- 168 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 18:31:55 ]
- JFrame でアプリを作り、Mac で起動し、
Mac の上部から 「〜〜を終了」 を選んで終了した際に ドキュメントが保存されていない場合には保存確認をとり、 キャンセルされたらアプリケーションの終了をキャンセルしたいのですが、 こういうことはどのようにすればいいのでしょうか?
- 169 名前:デフォルトの名無しさん [2009/01/11(日) 18:44:18 ]
- JFrame#setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)
とかじゃなかったっけ? で、WindowListenerで閉じるときの処理を書く。
- 170 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:09:41 ]
- それが、ウィンドウを閉じた時はそこにくるんですが、
「〜〜を終了」 の時はそこに来ないようなんです。 addShutdownHook なら一応保存確認することはできますが、 アプリケーションの終了をキャンセルすることまではできなくて、 どうしたものかと思っています。
- 171 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:00:30 ]
- >>168
developer.apple.com/jp/qa/qa2001/qa1187.html
- 172 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:13:21 ]
- >>171
ありがとうございます。できました!
- 173 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 20:20:49 ]
- 高橋麻奈の優しいJAVAで一通り覚えた。けどこれから何をすればいいのか分からん。
あれ。なんでJAVAを勉強しようと思ったんだっけwwwwwwww
- 174 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:07:56 ]
- やさしいJavaとか書いたらまあ湧いてくるじゃないか…
- 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のサブクラスにした方がええんちゃうか?」 というのが質問の発端です。
- 276 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:37:47 ]
- JDrafterを参考にするといいかも
- 277 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:09:59 ]
- >>276
宣伝乙。
- 278 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:36:34 ]
- いや、宣伝じゃないよ
あれは素直にすごいだろ jadで十分読めるから読んでごらん
- 279 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:05:58 ]
- スプラッシュなんてちゃんと見ないからどうでも良いな。
むしろ消せるオプションを標準実装にして欲しいくらいだ。気持ち程度、余計な事をしない分、起動が速く成るだろうし。 窓は融通が利くけど、マクはマクらしいとアポーが決めてるアプリの使い方しか出来ないように強制されてるのが嫌。 俺が買ったものくらい自由に使わせろって。
- 280 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:12:19 ]
- >>240
既存のフロントエンドをSwingに移行させるんなら そこそこ市民権を得そう。
- 281 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 05:31:37 ]
- >>279
JavaSE6の機能でスプラッシュ出してるなら、起動速度は変わらない
- 282 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:00:55 ]
- つかスプラッシュ消えるの速すぎてタイトル嫁ねえw
一定以上の時間指定したい
- 283 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:12:28 ]
- 起動をもっさり遅くすればいいんじゃね?
起動すればソフトのタイトル見えるんだし、わざわざ邪魔なスプラッシュ表示しとく意味ねえよ
- 284 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 13:38:01 ]
- java6のスプラッシュはVM起動時に表示されるんであってアプリ起動時に表示される訳じゃないからアプリをもっさりさせても意味ないよ。
- 285 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 13:40:56 ]
- まじかよw
スプラッシュって起動中だからちょっとまっててな。ってニュアンスが一番よさげなのにw
- 286 名前:デフォルトの名無しさん mailto:sag [2009/02/02(月) 13:44:23 ]
- きっとスレ違いでは無いはず・・・。
#include<gcj/cni.h> #include<javax/swing/JFrame.h> #include<javax/swing/JButton.h> #define JS(str) ::JvNewStringUTF(str) int main(void) { ::JvCreateJavaVM(NULL); ::JvAttachCurrentThread(NULL,NULL); { JFrame *frame=new JFrame(msg); frame->add(new JButton(JS("Okey"))); frame->setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE); frame->pack(); frame->setVisible(true); } ::JvDetachCurrentThread(); return 0; } JFrameが表示された後、即main関数を脱出してしまう。 当然といえば当然だが、これを上手いこと防ぐ方法は無いか?
- 287 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 15:02:38 ]
- frame->setVisible(true);の後ろに↓を足したらいいんじゃね?
try { while (frame->isVisible()) { Thread->sleep(1000); } } catch (InterruptedException e) { // 華麗にスルー }
- 288 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:39:52 ]
- >>282
Frameの表示を遅らせれば?
- 289 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:08:46 ]
- >>287
スレッドで分離する方法とかもあるんだけど、 定石的な方法は無いだろうか? >>288 どういう事?いまいち想像が付かないが。
- 290 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:24:38 ]
- >>289
普通にjavaだけでやる分には、main抜けても問題ないからわかんないっす。 そして、俺も助けて欲しいことが。 ttp://sandalman-no-blog2.blogspot.com/2008/01/java6-jtree_03.html ここのソースなんだけど。 JTree内でDnDすると、ツリーが閉じてしまうんだ。 JTreeの以外からドラッグしたのをJTreeにドロップする分には閉じない。 JTreeからJTreeにDnDするとドロップされた側が閉じてしまう。 わけわかんねーっす、誰か助けて。
- 291 名前:290 mailto:sage [2009/02/02(月) 22:39:56 ]
- 自己解決したっす。
// node.removeFromParent(); ((DefaultTreeModel)tree.getModel()).removeNodeFromParent(node); // ((DefaultTreeModel) tree.getModel()).reload();
- 292 名前:290 mailto:sage [2009/02/02(月) 22:41:26 ]
- 途中送信orz
node.removeFromParent(); ((DefaultTreeModel) tree.getModel()).reload(); ↓ // node.removeFromParent(); ((DefaultTreeModel)tree.getModel()).removeNodeFromParent(node); // ((DefaultTreeModel) tree.getModel()).reload(); こうしたら閉じなくなったっす。 node.removeFromParent();ってなんか使いにくいんですかね?
- 293 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:35:28 ]
- ほんとに助けてほしいなら、わかんねーすっとかムカつく言葉遣いやめておいたほうがいいな。
- 294 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:55:01 ]
- 別スレの空気嫁とかいいながら煽る人よりは
- 295 名前:288 mailto:sage [2009/02/03(火) 14:44:18 ]
- >>289
スプラッシュが消えるのはFrame等が表示されるまでだから。 下のを-splash:temp.pngとかで適当にスプラッシュ表示させてみ。 import javax.swing.*; public class SplashTest { public static void main(String[] args) throws Exception { Thread.sleep(5000); SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame(); frame.add(new JLabel("てすと")); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } }
- 296 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:47:24 ]
- というか、スプラッシュの表示時に表示したい時間分、sleepすれば
いいだけなんだけどな。
- 297 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:28:43 ]
- そのスプラッシュ超いlらないなw
- 298 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:36:09 ]
- 5分ぐらいスリープしとくとちょうどいいんじゃないかな
- 299 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:08:46 ]
- どん兵食うのにか?
- 300 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:20:25 ]
- それだ!
スプラッシュにラーメンタイマー機能をつければいい!! で、何の話だっけ?
- 301 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:12:04 ]
- どんべえも最近は3分じゃねぇの?ってとこまでは読んだ。
- 302 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:15:24 ]
- 5分か3分か選べるオプションをつければ完璧という事は魂で理解できた
- 303 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:18:00 ]
- ていうか、スプラッシュに「閉じる」ボタンがあれば誰も困らないのに…
- 304 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 04:22:44 ]
- スプラッシュが閉じるときに、音を鳴らす必要があるな。
- 305 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:05:07 ]
- 蓋を閉めてジャヴァアプリを起動する必要があるけどな。
- 306 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:02:17 ]
- 4分を舐めると火傷するぜ・・・
- 307 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:04:42 ]
- >>306
頭使えよ 5分設定で起動してから1分後にお湯を入れればいいんだ
- 308 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:19:52 ]
- じゃあ1分くらい用意してくれよ
- 309 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 18:06:37 ]
- www.cupnoodle.jp/mvm/index.html
もうお前らこれ使えよ…
- 310 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 18:27:57 ]
- これじゃスプラッシュでないじゃん
- 311 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:01:30 ]
- すみませんが、質問させてください。
Swing Application Frameworkをバリバリ使ってます、方ってこのスレでいますでしょうか? 創るJavaでJavaを再学習しているのですが、実際のアプリSwingだといろいろ管理が面倒だな、と思っていたときに 上記のフレームワーク見つけたのですが、1.03になってもあまり流行っている感じがなかったので 問題があったのかぁ、と思ったので・・・・ 使っている方で、「この辺が便利だよ」、とか「これが使えない」とかありましたら教えていただけないでしょうか?
- 312 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:57:39 ]
- >>311
使ってないけど、J2SE7に含まれるらしいよ けど誰か忘れてたけどアプリケーションクラスがシングルトンになってる時点でだめだとか書いてたような・・・
- 313 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:27:34 ]
- ポップアップメニューのsetLightWeightPopupEnabledに相当するメソッドは
JMenuにはないでしょうか? ポップアップメニューにJMenu追加して分岐させたら、 分岐させたメニューが表示できませんでしたw setLightWeightPopupEnabled使わないとポップアップメニューを出せないような作りが悪いのかもしれませんが。 もしあったら教えてください。
- 314 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:41:38 ]
- >>313
JMenu#getPopupMenu() で取ってきたポップアップメニューに setLightWeightPopupEnabled
- 315 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:47:57 ]
- >>313
どう考えてもSwingの描画ぶっ壊してるから他の部分でも見えてないだけで問題があるかと。
- 316 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:01:10 ]
- >>315
はい、継承してコネコネしてるJLabelの上だとポップアップメニューがでないんです。 いつか直さないと。 >>314 ありがとうございます。 JMenuの中にpopupMenuがあって気になってましたが、それでいけそうな気がします。
- 317 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:35:27 ]
- >>314
めでたく上手くいきました。 ありがとうございました。
- 318 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 17:16:44 ]
- アプリケーション終了時に、ウィンドウの位置とサイズを記憶したいです。(次の起動時に復元するため)
この時、最大化した状態で終了すると、元に戻すボタンを押した時のサイズを取得できません。 この元の位置(できればサイズも)を最大化してる状態で取得する方法はないでしょうか? ※自分でやった事 ComponentAdapter#componentMovedを使って、 getExtendedState() == NORMALの時に位置を記憶させてみたものの、 最大化した時にgetExtendedStateがNORMALの状態で動いてしまい、 位置を-4,-4で記憶してしまいます。 マルチモニタでも動かしたいため、0以下の値を弾くわけに行かなくて困っています。 componentResizedが動く時はgetExtendedState() == MAXIMIZED_BOTHになっているため、 サイズはなんとか記憶させることができました。
- 319 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:12:18 ]
- EDTの簡単な取得方法はありませんでしょうか?
- 320 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:23:34 ]
- 6u12でAWTとSwingの限定的な混在がサポートされたな。
- 321 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:02:12 ]
- >>319
EDTを取得して何すんの? ↓でできるけど import javax.swing.SwingUtilities; public class GetEDT { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { //↓こいつがEDT Thread edt = Thread.currentThread(); System.out.println(edt); } }); } }
- 322 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:27:51 ]
- >>321
それは分かりますが、単純にEDTが走ってればそれを返して、動いてなければnullみたいなのがありそうだなーと思っただけです。 確かに用途は少ないですね。 Thread#setUncaughtExceptionHandler()をEDTに設定したかったのですが、すでに取得する方法があればそれを使用しようと質問しました。 わざわざくだらない質問に答えていただきありがとうございました。
- 323 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:04:02 ]
- >>322
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/awt/EventQueue.html#isDispatchThread() ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Thread.html#currentThread()
- 324 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:58:11 ]
- >>312
OpenSwingはどうなん?
- 325 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:02:26 ]
- >>323
それAWTのシステムキューだろ。
- 326 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 18:23:34 ]
- JTextComponent でスペースバーが押されたらアクションを実行し、
その際空白文字は入力されないようにしたいのですが、 以下のようなやり方(いちおう動く)でよいのでしょうか? もっと一般的な方法はあるでしょうか? Keymap keymap = textComponent.getKeymap(); // スペースバーにアクションをマッピング KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0); keymap.addActionForKeyStroke(stroke, action); // スペースバーが押されても空白文字が入力されないようにする keymap.setDefaultAction(new DefaultEditorKit.DefaultKeyTypedAction() { @Override public void actionPerformed(ActionEvent ae) { String cmd = ae.getActionCommand(); if (!cmd.equals(" ")) { super.actionPerformed(ae); } } } );
- 327 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:08:46 ]
- >>326
コピペでスペースが入ってきてもやっぱり弾くのかな。 ならばjavax.swing.text.DocumentFilterで弾くのが楽じゃない?
- 328 名前:sage [2009/02/10(火) 21:13:11 ]
- >>326
Documentに、特定の文字列が挿入されるのを防ぐ場合には、通常DocumentFilterを使う。 Documentにスペースが挿入されても構わなくて、キーボードからの入力のみフィルタするなら、 KeyListenerを使ったり、processKeyEvent(),processKeyBinding()等をオーバーライドして 実装することもできるけど、いずれもコードが汚くなるから、326の処理でいいと思う。 あとは、瑣末な問題だけど、個人的には、ActionEvent#getActionCommand()の戻り値が nullでないとは規定されてないから、if (!cmd.equals(" ")) を!" ".equals(cmd)にするか、 if (cmd != null && !cmd.equals(" "))に変更するぐらいかな。
- 329 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:12:34 ]
- >>326
おれが作るならばDefaultKeyTypedActionの継承はしないで keymap.getDefaultAction()して保存おいてスペース以外ときは そっちに移譲するようなActionにするかもしれない。なんとなく。
- 330 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:25:06 ]
- >>325
ttp://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/SwingUtilities.html#isEventDispatchThread() > 現在のスレッドが AWT イベントディスパッチスレッドの場合に true を > 返します。JDK Version 1.3 以降、このメソッドは > java.awt.EventQueue.isDispatchThread() を呼び出すだけです。 なので、EDTの判定に用いるのは間違いじゃない。
- 331 名前:326 mailto:sage [2009/02/11(水) 00:24:39 ]
- >> 327
今回はキーが押された場合のみを処理したいので DocumentFilter は使えないのですが、 回答ありがとうございます。 >>328 >>329 を参考にして こんな感じにしてみました。 final Action defaultAction = keymap.getDefaultAction(); keymap.setDefaultAction(new AbstractAction() { @Override public void actionPerformed(ActionEvent ae) { String cmd = ae.getActionCommand(); if (!" ".equals(cmd)) { defaultAction.actionPerformed(ae); } } } ); UIによって独自のデフォルトアクションが セットされるかもしれない(?)ので、 >>329 の案のほうがよいかと。
- 332 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:30:05 ]
- まずEDTといってもシステムキューの方かSwingEDTの方なのかはっきりしてもらわんとなぁ。
単にEDTと言ったらjavaの場合SwingEDTの方を指す場合が多いからややこしい。
- 333 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:47:13 ]
- >>332
システムキューって何ぞ? 用語が一般的過ぎて、ぐぐってもそれらしきものが引っかからん。 説明資料へのリンク希望。 AWTイベントキューとは違うもんなんだよね?
- 334 名前:sage [2009/02/11(水) 10:31:21 ]
- >>331
Actionに委譲するのは良いんだけど、 >UIによって独自のデフォルトアクションがセットされるかもしれない ということを考慮するなら、委譲するActionの参照を保存してたらダメでしょ。 UI変更時に、上記のコード自体が再実行されるなら、アリだけど。
- 335 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:23:09 ]
- >>333
同じ、AWTのEDTの事をAWT event queues systemと表記する場合とSystem Queueと表記する場合がある。 今はどうなってるが知らんが。
- 336 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:36:49 ]
- >>335
んー、そうすると、昔は知らんが、今はシステムキュー==AWTのEDT==SwingのEDTなんじゃ? >>330に書いたように、Java1.3 以降は javax.swing.SwingUtilities.isEventDispatchThread() == java.awt.EventQueue.isDispatchThread() なんだし。
- 337 名前:326 mailto:sage [2009/02/11(水) 23:57:03 ]
- >>334
説明不足でしたが updateUI() をオーバーライドして super.updateUI() の後に処理を書いているので たぶん大丈夫だと思います。
- 338 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:59:44 ]
- こういうタイポとかでdeprecatedなメソッドはさすがに廃止してもいんじゃなかろうか。
java.sun.com/javase/ja/6/docs/ja/api/java/awt/FontMetrics.html#getMaxDecent()
- 339 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:48:12 ]
- 廃止したら、古いアプリケーションが動かなくなるからな。
ところで Cloneable はスペルミスなのに Closeable は間違いじゃないんだな。 ややこしい。
- 340 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 13:56:33 ]
- 互換用のjarを用意して、コンパイル時にはエラーにしてしまえばいいのに。
- 341 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 18:53:19 ]
- コンパイルエラーにする代わりに警告を出してるんでしょ。
問題ないと思うけど。
- 342 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:16:20 ]
- >>340
互換用のjar吐くフリーソフトとか作ったら需要あるかな。 メソッドシグネチャだけコピーして、どれを呼んでもErrorなげる実装とかいうやつ。
- 343 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 09:18:34 ]
- JDKのライセンス違反になるからダメ。
java.*、javax.*、sun.*以下のクラスは変えちゃいかんのよ。 勝手にクラス追加するのも禁止されてる。
- 344 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 17:34:57 ]
- JEditorPaneで単純にHTMLを表示する場合なんだけど、
<a href="#hoge">Hoge</a> . . . . . . <a name="hoge">ここにくる</a> とやって、ページ内でジャンプさせることってできないんだっけか?
- 345 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 18:54:43 ]
- >>344
クリック監視はHyperlinkListenerで。 そこからJEditorPane#scrollToReference("#hoge")でなんとかなんないかな。
- 346 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 19:42:27 ]
- >>345
ありがとう! これから試してみる。
- 347 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:07:18 ]
- >>345
ありがーと! うまくいった。 JEditorPane#scrollToReference("hoge") で、#はいらないようです。
- 348 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:28:04 ]
- うふっ
- 349 名前: mailto:sage [2009/02/26(木) 20:25:14 ]
- JLabelがクリックされたとき、JLabelではなく親のコンポーネントがクリックされたことにしたいのですが
どういしたらいいでしょうか。
- 350 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:39:23 ]
- >>349
あほらしい方法だけど public void mouseClicked(MouseEvent e) { JComponent c = (JComponent)e.getSource(); for(MouseListener l :c.getParent().getMouseListeners()){ l.mouseClicked(e); } }
- 351 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:34:16 ]
- 俺なら親のaddMouseListenerをオーバーライドしたいな
- 352 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:48:15 ]
- 俺俺なら親にディスパッチする
- 353 名前:sage [2009/02/26(木) 22:54:12 ]
- 俺俺俺も親にディスパッチするな。
350 みたいに実装するなら、MouseEventを変換してやらないと。
- 354 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:57:08 ]
- まぁ俺の方がディスパッチするけどね。
- 355 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:07:01 ]
- ディスパッチってどうやってするねん?
俺も>>350みたいにリスナーぶち込みで対処したことがある
- 356 名前:sage [2009/02/26(木) 23:17:41 ]
- >>355
java.awt.Component#dispatchEvent(AWTEvent)嫁。
- 357 名前:349 mailto:sage [2009/02/27(金) 00:35:17 ]
- getParent().dispatchEvent(event);が一番短くかけるみたいですね。
>>350から355のみなさん、どうもありがとうございました。
- 358 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 01:09:26 ]
- 普通に JLabel の親に対して
addMouseListener(MouseEvent) を呼べば >>349 に書かれてるような挙動になるけど。
- 359 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 01:40:53 ]
- c.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) { c.removeKeyListener(this); } }); どさくさにまぎれて、一度だけ実行されるリスナーの小技。(流れ上、マウスリスナでないのは手抜き) めったに使う機会がないと思うけど。。
- 360 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 01:54:28 ]
- それいけるんだ
Iteratorのループで出来ないかと思ってた〜
- 361 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:05:56 ]
- JComponent.setFont(new Font("メイリオ", Font.BOLD, 42))
とすると一回目だけすごく遅いんですが、フォントの読み込みは 何かテクニックがあるんでしょうか?
- 362 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:07:54 ]
- アプリケーション起動時にあらかじめ読み込んでおくくらいしかないよ
いずれにせよロード時間はかかる
- 363 名前:デフォルトの名無しさん [2009/03/01(日) 17:17:19 ]
- Java SE Development Kit (JDK) 6 Update 11
Eclipse3.4.1 WindowsXP SP3 上記の環境があり、そこでGUIアプリをJavaで作成しようと思っています。 Swing(?)ってのをElipseのメニューから探したのですが、見当たりません。 JavaSEをアンインストールして、JavaEEをインストールするのが妥当な選択なのでしょうか? それともplug-inがまた別にあるのでしょうか?
- 364 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:39:46 ]
- >>363
LANケーブルを抜いてクビをククルのが最速
- 365 名前:デフォルトの名無しさん [2009/03/01(日) 17:49:20 ]
- >>364
最速か否かは聞かれてないだろww
- 366 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:54:37 ]
- exlipseの標準環境だと、swingアプリはメモ帳でhtml手打ちするようなのりで、
自分でソースコード書いて全部作ることになるっす。 net beansとかいうの使うと、VBみたいなポトペタを標準でできるらしい eclipseもプラグイン導入するとポトペタできるらしい が、swingでポトペタやったことないんでわかりません。
- 367 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:23:02 ]
- >>366
Swingやるなら現状ではNetBeans一択らしい。 EclipseプラグインのVE(VisualEditor)は使いもんにならんそうな。 俺はEclipseで手打ちしてるけどナー。 # EcilpseからSwingアプリを起動すると、フォント構成ファイルが無視されて、 # 日本語じゃないフォントで日本語がレンダリングされるという問題も……。 # おかしいなー、フォント構成ファイルの読み込み自体は正常に行われてるんだが。
- 368 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:00:47 ]
- つ jigloo
- 369 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:02:05 ]
- じぐるーも重いしすごくグループレイアウトが使いにくいしだめだよなぁ
- 370 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:51:25 ]
- NetBeansでGUI作って、Eclipseに持ち込んでる俺。
他にもいるでしょ、こんな人。
- 371 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:11:34 ]
- >>367
VEは使ってみて、脱力した。 正直、自分の脳内でレイアウト組んだほうがマシ。 最近は更新もされてないんじゃなかったっけ?
- 372 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:20:54 ]
- swingの印刷機能って、コンポーネント上の文字がカクカクになって印刷されるんだけど、
これって普通なの?
- 373 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 08:18:06 ]
- >>372
アンチエイリアスかければ?
- 374 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 23:11:33 ]
- >>370
余裕で俺、とウチの社内全員。
- 375 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 00:14:31 ]
- >>370
NetBeansでそのままつくらずに、Eclipseに持ち込む理由はなんですか
- 376 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 00:27:24 ]
- 大技見つけたぜぃ。
Javaで比較的簡単にホットデプロイする方法。 まず、デプロイしたいクラスのベースとなるHogeを作っておきます。 そして、それを継承したHoge00というクラスを作ります。 ただし、このクラスのファイル名はHogeXX.javaという風にします。 コンパイルできなければ対策を考えますが、クラスをpublicにしなければ通るようです。 そして、修正してデプロイするときには、Hoge00をHoge01という風にクラスの名前も変えます。 ファイル名はそのままです。 クラス名を変えるとコンストラクタ名まで変えないといけません。この時の小技として コンストラクタの処理を全て関数にしてHoge00クラスにはコンストラクタを記述しないようにします。 その為、Hogeクラスには空のデフォルトコンストラクタを用意しておきます。 あとは、コンパイルしてシステムのクラスローダを使ってHoge01クラスを読み込んで Hogeにキャストして使用できます。Hogeにはインターフェースとなる関数を用意しておきます。 従来の方法だと別のクラスローダを使ったりするので、同じクラスを違うクラスであるとしてしまう為 キャストしたり出来ません。なので、リフレクションなどを使ってアクセスする事になります。 これがどうもうまくないと思ったので、別の方法を考えたら思いつきました。 今からサンプルを作ります。
- 377 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:39:21 ]
- space.geocities.jp/solver9999/
ホームページに置きました。 なぜか、antから起動しないとToolProvider.getSystemJavaCompiler()がnullになってしまうので antを使ってください。この辺を調べてみます。でゎ、おやすみ。
- 378 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:53:06 ]
- なんだか麻布の臭いがする。。。
- 379 名前:デフォルトの名無しさん [2009/03/04(水) 10:33:20 ]
- GUIはまったく初心者だったけど「Javaアプリケーション作成講座」という本を読んで
だんだんわかるようになってきた とりあえず簡単なテキストエディタやブラウザは作れるようになった
- 380 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:28:11 ]
- javax.tools.ToolProvider.getSystemJavaCompiler()がnullを返すのは
JAVA_HOME\lib\tools.jarにクラスパスが通ってない事が原因でした。
- 381 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:24:28 ]
- ネタ・・・じゃ・・・ないの・・・・か?
- 382 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:06:57 ]
- Swingに印刷プレビューダイアログってありますか?
- 383 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 09:36:17 ]
- 作れば良いんじゃないの
- 384 名前:sage [2009/03/06(金) 00:33:36 ]
- 以下のバグが1.4でも6.0でも再現するんだけど、JTextField#setTextはスレッドセーフじゃないの?
それとも検証方法自体が間違ってるの? bugs.sun.com/bugdatabase/view_bug.do?bug_id=4765353
- 385 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:42:39 ]
- swing自体スレッドセーフじゃなかったと思う
- 386 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:44:55 ]
- 1.4.2で直ってないって書いてあるし、放置されてるんじゃね?
- 387 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:46:00 ]
- この再現コードみたいなことをすること自体基本的にないからなぁ
- 388 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:50:16 ]
- >>385
↓スレッドセーフだと書いてあるんだが・・・ sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/swing/text/JTextComponent.html#setText(java.lang.String)
- 389 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:13:56 ]
- ざっとソースをみたところ、スレッドセーフじゃないね。
テキストのモデルであるDocumentへの書き込みがアトミックであったとしても、 UIスレッドを用いてコンポーネントから何らかの値をとってくるメソッドで Documentのインスタンスを2回以上使うような操作をする全てのメソッドは その間はDocumentへの書き込みを排他していないといけないはずなのだが、 少なくとも、getTextメソッドでは、そんなめんどくさいことはやってない。
- 390 名前:389 mailto:sage [2009/03/06(金) 01:15:33 ]
- ソースは Java 6 しかみてない。すまん
- 391 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:18:31 ]
- setTextする処理をEDTに投げればいいんじゃないの?的外れだったらごめん。
- 392 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:43:30 ]
- >>389
>.少なくとも、getTextメソッドでは、そんなめんどくさいことはやってない。 setTextの話だったんだけど、typo?
- 393 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:53:44 ]
- >>392
getTextが変な値を返す原因がsetTextをUIスレッド以外でアクセスしたことにあるなら、 setTextはスレッドセーフだといえる?
- 394 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 07:33:43 ]
- >>393
setTextの時点で変な値にならないのであれば、setTextはスレッドセーフじゃないの? (よくわかってないかもしれん・・・) そもそも>>384の再現コードは、getTextした値が""や"12"や"21"になることがあり、 以下のように思ってるんだが、違うかな? ""は、setTextが値を一度クリアしたタイミングで、getTextしているから。(getTextがスレッドセーフではないから) "12"や"21"はsetTextがロックする前にAbstractDocument#getLengthを呼び出していることが原因。 (setTextもスレッドセーフではない?)
- 395 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 13:04:40 ]
- JavaDoc を見る限り getText() はスレッドセーフじゃないんだな…知らなかった…
別スレッドからsetText()して結果的に画面に"12"や"21"や""が描画される ことがないのであれば setText() はスレッドセーフといえる…のかな? でも現状は >>394 のいうようにsetText()もスレッドセーフじゃないように見えるなぁ
- 396 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 17:43:09 ]
- setText()のスレッドセーフを確認するのに、スレッドセーフではないgetText()が絡んでくるとややこしくなるので
setText()するたびに文字列を溜めておいて、最後に検証するというのはどうだろう。
- 397 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 19:28:23 ]
- AbstractDocument.readLockを使えば、少しはましになるけど、ダメだった。
たまに、"12"と"21"が出てくる。
- 398 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 22:27:20 ]
- swingコンポーネントをディープコピーしようとしたら、
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.io.NotSerializableException: com.sun.java.swing.plaf.windows.XPStyle$Skin っていわれるんだけど、どうすりゃいいの?
- 399 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:12:39 ]
- Beans Bindingはもう見捨てられたのかと思ってたけど、先月スペックリードが変わってるね。
これは期待してもいいんだろうか。
- 400 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 01:08:00 ]
- スペックリードとは仕様定めるリーダーみたいなものでしょうか?
- 401 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 10:41:55 ]
- 複数のクラスで共用するダイアログなどで、わざわざそれぞれのフィールドとして持たせたくない場合は、UIUtilitiesなどを作ってそこでshow***といった感じで定義しても問題ないでしょうか
- 402 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:24:14 ]
- 逆に何を懸念しているのかがわからない
- 403 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 13:39:14 ]
- Swingを勉強するのにお勧めの書籍とかある?
- 404 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:06:20 ]
- どのレベルか、どんな記述が読み易いか示さないと何とも。
- 405 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:15:03 ]
- >>404
Javaの勉強を始めたばかりで、プログラミング言語Java第四版を読み終わったところ。 まあまあ読みやすかった。訳も気にならなかった。 Head Firest Java 第二版を読んでる最中で、 面白いと思うけど、実用性には欠けると思っている。 ざっと機能を概観する入門書と、詳しい内容の2冊進めてもらえるとうれしい。 こんなところでどうでしょう。
- 406 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:16:03 ]
- swinglabs.orgがもう一週間近く死んでる。
- 407 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 06:07:53 ]
- 頭いい人は本から入るのかね?
わしは本読んでると眠くなるんで、いきなりソースコードと戦う派なんだが
- 408 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:29:02 ]
- 武闘派か。端から見てるとPCに向かって何か遣ってる引きこもりにしか見えないが。
- 409 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:39:15 ]
- >>405
詳しい内容ではないが実践的な内容ならEffective Java。 Swing関係ないけど。一通りJavaで組めるようになって開発規模が 大きくなってきた頃に手に取ると大変有用な本だと思う。
- 410 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 19:03:06 ]
- >>409
Swing本当に関係ないなww Swingの本を薦めてくれ。
- 411 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 19:23:35 ]
- >>410
申し訳ない。ただJava勉強中のようだったのでつい。 確かにSwing関係ないけど間違いなく勉強になる良い本だよ。 「良いクセ」を学べる本なので、中級へのステップアップ時には 是非読んだ方が良いですよ。 Swing本については、他の人よろしく〜
- 412 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 19:27:20 ]
- >>411
気持ちはありがたいが、既に本棚にあるのだww
- 413 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 19:29:06 ]
- JavaはJava教室で買わされた本しかもってない、
Swingはグーグル先生に聞いてなんとかした、 読んでないからいい本なんて分からないんだぜ Effective Javaは良さそうだな、読んでみようか
- 414 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:31:16 ]
- 本ではないが、java.sun.com/docs/books/tutorial/uiswing/
- 415 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:57:22 ]
- >>413
ちゃんと本を読まなかったので、 javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); の必要性を知らなかった。 人が書いたコードを見ても、余計なことをしてると思っていた。
- 416 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:46:43 ]
- そんなの見た事無いや。orz
解説頼む。
- 417 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:12:48 ]
- >>416
Swingは、スレッドセーフじゃないから、初期化もイベントディスパッチスレッドで実行しないといけない。 invokeLaterを使うと後でイベントディスパッチスレッドで実行される。
- 418 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:23:09 ]
- >>416
スレッドセーフじゃないんだってさ。
- 419 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:10:35 ]
- 本ならSwing Hackが実用的かも。
Swingの入門書の次くらいに読むといい本。
- 420 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 23:55:45 ]
- >>419
本屋でSwing Hackをみてきました。見た感じTIPS集みたいですね。 よさそうな入門書だと「Java GUIプログラミング」のVol.1, Vol2なのですが、 ちょっと本気すぎる感じです。以外にSwingの本って売ってないですね。
- 421 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 02:54:08 ]
- >>420
本を買う前に最初はsunのjavaサイトにあるswing関連のチュートリアルで十分じゃないか? APIリファレンスのswingコンポーネントクラスの説明文の多くにリンクがあったりする。
- 422 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 02:58:11 ]
- あ、すま
>>414で紹介されてるね。
- 423 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 03:06:57 ]
- 英語を読むのは面倒くさい
いや読むけどさ(ブツブツ
- 424 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 04:21:31 ]
- >>420
入門書ってどれもほとんど大差ないから。 「Java GUIプログラミング」が本気すぎるとなると習う前に慣れたほうが良いかも。 となるとSwingチュートリアルのソースがベストかな。 英文を隅々まで読まなくても、ソース読んで、実行してみればだいたいわかってくる。
- 425 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:45:24 ]
- >>424
ありがとう!やってみる。
- 426 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 22:52:15 ]
- JOptionPane#showXXXDialog()で適当なコンポーネントをつめたJPanelを
表示した際にダイアログのボタンじゃなくてJPanel内の特定のコンポーネントの 方にフォーカスがあたるようにすることってできる?
- 427 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:06:24 ]
- >>426
???
- 428 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:47:02 ]
- >>427
JOptionPaneをカスタマイズしてJPanelを埋め込んだ場合に、ダイアログのOK/Cancelボタンではなくて追加したJPanel内のコンポーネントに入力フォーカスを当てたい、ということだと思われる。
- 429 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 08:22:29 ]
- できると思う
swing フォーカスでぐぐりゃ解決しそう
- 430 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:23:07 ]
- >>428
そういうことです.わかりにくい文ですみません. >>492 ぐぐってみました.ttp://terai.xrea.jp/Swing/DefaultFocus.html JOptionPane#showXXXDialog()系だとJDialogやJFrameがとれないから FocusTraversalPolicyをセットしたりWindowLister#windowOpend()や ComponentListner#componentShown()でrequestFocus()呼べないよなー とか思ってました. んで上のページの EventQueue#invokeLater() 方式を試してみましたが 手元の環境ではJOptionPaneの場合フォーカスはOKボタンの方になってしまいました…
- 431 名前:430 mailto:sage [2009/03/19(木) 11:39:29 ]
- 試したコードはこんな感じです
public static void createAndShow(){ final JTextField textField = new JTextField("Hello"); EventQueue.invokeLater(new Runnable(){ public void run() { textField.requestFocusInWindow(); } }); int result = JOptionPane.showConfirmDialog( null, textField, "Input Text", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); }
- 432 名前:デフォルトの名無しさん [2009/03/19(木) 12:09:21 ]
- >>431
実際にフォーカスを取得するまで、 requestFocusInWindow() を何度も呼んでみるとか。 ちょっと力技かもしれないけど HierarchyListener を使えば JOptionPane.showXxxDialog() で作られるダイアログを取得できる。 そのダイアログに対して WindowListener か ComponentListener を使えばよい。 「コンポーネントが画面に表示されたときに特定の処理を行う」 って、意外と難しいよね? JSplitPane が表示されたときディバイダを中央に移動させる方法を 見つけるのに、すごく苦労したことがある。
- 433 名前:430 mailto:sage [2009/03/20(金) 00:09:49 ]
- >>432
なるほど HierarchyListener は思いつきませんでした。これなら動きそうですね。 >>431 のコードはEventQueue#invokeLater()じゃなくて javax.swing.Timer で 1秒後とかやったら期待通り動いたんでタイミングの問題なんでしょうねぇ… PC性能によって必要な delay 時間が変わるからTimerでやるのは微妙だなー と思ったけど何度でも呼んでみる的アプローチで繰り返しありの Timer を 設定してフォーカスがとれたら Timer を止める、とかでもできそうですね…
- 434 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 01:56:28 ]
- final JTextField textField = new JTextField("Hello");
JOptionPane pane = new JOptionPane(textField, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION); JDialog dialog = pane.createDialog("Input Text"); dialog.addWindowListener(new WindowAdapter() { @Override public void windowOpened(WindowEvent e) { textField.requestFocusInWindow(); } }); dialog.setVisible(true); dialog.dispose(); Object o = pane.getValue(); int result = (o instanceof Integer) ? (Integer)o : JOptionPane.CLOSED_OPTION; うそくさいし、ひどく面倒
- 435 名前:430 mailto:sage [2009/03/20(金) 13:14:55 ]
- >>434
確かに JOptionPane を直接使えばJDialogがとれますね。参考になります。 戻り値の扱い周りとかが大変面倒くさそうですけど…
- 436 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:26:02 ]
- >>432
>「コンポーネントが画面に表示されたときに特定の処理を行う」 Component#addNotify() / removeNotify()をオーバーライドでできると思う。
- 437 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:46:14 ]
- >>436
addNotify() が呼ばれたとき、 そのコンポーネントが表示されてるとは限らない。 たとえば Window.pack() を呼んだとき、 (たとえウィンドウが不可視であっても) ウィンドウ内のすべてのコンポーネントの addNotify() が呼ばれる。 あと、親コンテナの doLayout() が呼ばれるまでは コンポーネントのサイズが確定しないので、 オーバーライドした addNotify() から JSplitPane.setDividerLocation() を呼んでも機能しない。
- 438 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:59:56 ]
- JTableのセルをアニメーションして移動したり表示したりしたいのですが
どういう方法が一番いいでしょうねぇ・・・
- 439 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 19:12:38 ]
- 単純にセルを描画する命令をタイマーで呼ぶしか方法はないのでは?
その具体的な方法でしょうか?
- 440 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 19:57:58 ]
- えーと、よくSFとかでありますね
上から1行ずつアニメーションしてさらさらと出てくるような表や 項目を追加したらふわっと最終行が浮かんでくる といったような描画をどうやってやるかということに悩んでいます Timer自体はいくらでも使えるのですが
- 441 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 20:18:33 ]
- JTableはセルそれぞれがコンポーネントというわけではないので、あまりスマートにはできません。
上げられた二つの例に限ってですが、代替策として、glasspaneでだますというのはどうでしょう? それがいやなのであれば、Timerかなにかでアニメーションさせてください。
- 442 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:18:49 ]
- >>440
JXLayer使えばいいと思うよ。
- 443 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:44:17 ]
- JTreeでツールチップ表示中にホイールスクロールするとやたら重いんだが
どうにか、普通にスクロールさせる方法はないかね
- 444 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 04:22:23 ]
- ツールチップが重い処理だからそんなもの。
無効にするしか。
- 445 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:51:40 ]
- >>443
ツールチップを常に重量コンポーネントとして表示すればよいと思う。 普通 JScrollPane でコンポーネントがスクロールされるときは、 現在表示されているビューポートの外観を少しずつずらしてコピーすることで、 高速なスクロールを実現している。 しかし、軽量コンポーネント(たとえばツールチップ)が 上のレイヤーに重なっているときは、 スクロールされるたびにビューポート全体を再描画しなくてはならないので遅くなる。
- 446 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 20:35:26 ]
- >>441
ありがとうございます GlassPaneを調べてみますね。それ以外の場合、Timerでアニメーションするとよいとのことですが アニメーションの内容はどのようなものを? TableSellRendererやJTableなどをいくら拡張しても中々難しそうですね・・・ >>442 なかなかすごそうなコンポーネントです。これはどういうものでしょうか?
- 447 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 02:49:32 ]
- 最近beansBindingを触って疑問に思ったのですが、
ColumnBindingに対してvalidatorを設定した場合、 バリデーションエラーが発生した行の取得はどのようにすればよいのでしょうか?
- 448 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 01:00:27 ]
- 横方向に中央であればFlowLayoutでシンプルに実現できますが、縦方向に中央に配置したい場合の簡単な実現方法はありませんでしょうか?
- 449 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 07:03:52 ]
- >>448
Y_AXISなBoxLayoutで子コンポーネントそれぞれにsetAlignmentX()でCENTER_ALIGNMENTを設定するのは? FlowLayoutと違って子コンポーネントの幅は推奨サイズでなく最大サイズに影響されるので、 推奨サイズにしたいなら子コンポーネントの種類次第では最大サイズを設定してやらないといけないけれど。
- 450 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 10:24:26 ]
- private static JLabel createLabel(String text){
JLabel lb = new JLabel(text); lb.setAlignmentX(Component.CENTER_ALIGNMENT); lb.setMaximumSize(new Dimension(300,30)); return lb; } public static void main(String[] args) { JPanel pn = new JPanel(); pn.setLayout(new BoxLayout(pn,BoxLayout.Y_AXIS)); pn.add(createLabel("hoge")); pn.add(createLabel("fuga")); //... } このようなコードで試してみましたが、やはりY方向には上に詰められてしまいます。 中央寄せしたいコンポーネントの上下をBox.createVerticalGlue()で詰めるというのはありでしょうか?
- 451 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:54:35 ]
- >>450
縦方向に中央揃えでコンポーネントを並べることと勘違いしてた。 Box b = Box.createVerticalBox(); b.add(Box.createVerticalGlue()); b.add(コンポーネント); b.add(Box.createVerticalGlue()); みたいな感じでいけるんじゃないかな。 でももしかすると上下のグルーが同じ比率で伸びずに完全なセンタリングにならないかも。 その場合、どれくらいで簡単な実現方法とならないかが分からないけれど、 GridBagLayoutやGroupLayoutみたいな少し複雑なレイアウトマネージャを使うとか、 縦方向について中央配置するマネージャを自作するとか。
- 452 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:57:58 ]
- >>450 縦に中央ってこんな感じ?
JLabel label1 = new JLabel("Hello, World!!"); label1.setBorder(BorderFactory.createTitledBorder("label1")); label1.setAlignmentX(JComponent.CENTER_ALIGNMENT); JLabel label2 = new JLabel("Goodbye, world!!"); label2.setBorder(BorderFactory.createTitledBorder("label2")); label2.setAlignmentX(JComponent.CENTER_ALIGNMENT); JPanel inPanel = new JPanel(); inPanel.setLayout(new BoxLayout(inPanel,BoxLayout.Y_AXIS)); inPanel.add(label1); inPanel.add(label2); inPanel.setAlignmentY(JComponent.CENTER_ALIGNMENT); inPanel.setBorder(BorderFactory.createTitledBorder("in")); JPanel outPanel = new JPanel(); outPanel.setLayout(new BoxLayout(outPanel,BoxLayout.X_AXIS)); outPanel.add(inPanel); outPanel.setBorder(BorderFactory.createTitledBorder("out")); JFrame frame = new JFrame("VerticalCenterLayout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //frame.add(BorderLayout.WEST, outPanel); frame.add(BorderLayout.CENTER, outPanel); frame.pack(); frame.setVisible(true);
- 453 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:32:37 ]
- 初心者です。
javaでゲーム製作の本を買って、 コードがすべてAWTで書かれてるんですが、 swing用の本を買いなおしたほうがいいですか?
- 454 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:23:18 ]
- >>453
別にそんなことないだろ。 Swingの本なら、awtの知識は前提としているだろうし。
- 455 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 17:13:35 ]
- >>454
ありがとうございます。 今の本で勉強してみます。
- 456 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 23:39:38 ]
- >>453
時間の無駄をいとわないならその本でOK。 時間の無駄がいやなら買いなおすべし。
- 457 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 00:44:33 ]
- ゲームを作るつもりでその本を買ったなら Swing の本を
買い直す必要は全くないと思うが… Swing の勉強をするつもりで買ったの?
- 458 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 04:25:34 ]
- あとでswingの本読んで、swing化してみるのは実力が付いていいと思うけどね。
基本は大事。
- 459 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 06:53:59 ]
- >>440
>>453 ゲームで、グラフィック表示ばっかりなら、Swingはあまり関係ないと思われる。 java.awt.Graphics2Dを使ってるから「コードがすべてAWT」というオチではないよな?
- 460 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 09:44:16 ]
- 440関係なかった・・・
- 461 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 09:49:53 ]
- javaでゲームだと結局java2dだとか3d使うんだべ
- 462 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 11:50:26 ]
- そんなことないべ。
コマンドアドベンチャーとかなら、普通に既存コンポーネントだけで作れるべ。
- 463 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:57:11 ]
- >>461
シミュレーションだとJava2DとSwingでがっちり組むみたいよ。 最近ので、ちょっと期待してしまうDarkSideとか www.darkside-game.net/index.jsp 自分ではJava3Dを使いたいんだけど再配布がな・・・
- 464 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:06:37 ]
- >>463
Java Web Startにすると、そのあたりも自動でインストールしてくれるらしい
- 465 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:33:46 ]
- >>464
そんなうまい話があるわけない。 開発者の手間は変わらない。(JNLPの分面倒か)
- 466 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:05:32 ]
- >>465は技術者として終わっとるな。
- 467 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:11:55 ]
- Java Web StartでのJava3D配布は、このあたりで話題になってた
pc11.2ch.net/test/read.cgi/tech/1033703640/909-915 詳しくはここを https://j3d-webstart.dev.java.net/test/ これが参考になるかもしれない。 ziddy.japan.zdnet.com/qa4257080.html
- 468 名前:465 mailto:sage [2009/04/03(金) 07:15:22 ]
- >>466
"自動で"とか勘違いさせるような発言について書いたんだが
- 469 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 08:21:42 ]
- Java3Dサイトのデモでは自動でJava3Dがインストールされるように見えるが。
- 470 名前:デフォルトの名無しさん [2009/04/03(金) 08:59:32 ]
- スタンドアロンでも普通に実行できるようにならんかね
ネットワークアクセスしてもいいから
- 471 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 09:41:54 ]
- jarファイルにすれば実行できるぞ
- 472 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:24:57 ]
- JFileChooser で、ファイルチューザーのダイアログを開いた時に表示されるディレクトリを
マイコンピュータにしたいんですが、どうしたらいいでしょうか?
- 473 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:14:59 ]
- 任意のファイルを自動でインスコできたら、セキュリティ上問題が有るな。
- 474 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 18:51:59 ]
- だから認証が出るわけだな。いまさら何を。
- 475 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 04:49:56 ]
- マニフェストに記述した JAR 内の画像をアイコンにするくらいしてほしいね。
まぁ JWS でデスクトップに好きな画像のショートカットアイコン作れるけどさ。
- 476 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:17:50 ]
- テキストを編集できるフレームで特定の文字がある行だけ
編集不可能にするにはどうしたら良いでしょうか。 netBeansのエディタみたいにするには?
- 477 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 14:27:24 ]
- カーソル移動のイベントを受け取って、その位置の含まれる行を見て
setEditable() で切り替えるとか。
- 478 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:35:57 ]
- 実際にやったことないから分からないけど
DocumentListener とか使うのでは
- 479 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:38:42 ]
- あるいは CaretListener を使って
キャレットが移動するたびに必要に応じて setEditable(boolean) を呼ぶとか。 こっちのほうがいいかも。
- 480 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 14:41:24 ]
- >>477,478,479 さんありがとうございます。
試してみます。
- 481 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 19:46:23 ]
- スレが過疎ってるスキに、くだらないこと書かしてもらうが
FileSystemView fileSystemView = FileSystemView.getFileSystemView(); この冗長さは、どうにかならんのか?
- 482 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 19:49:55 ]
- IME にでも登録しとけよ。俺は Eclipse のオナペット使うけど。
- 483 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 20:03:54 ]
- >>481
嫌ならもう少し短い変数名使えば?
- 484 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:28:39 ]
- ラッパ書いてヲレフレームワークに突っ込めよ。
import ore; ore = new ore.gFSV(); で出来るようになるぜ。
- 485 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 01:13:41 ]
- Nimbusのとかに比べると、まだまだだな。
InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.java
- 486 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 17:57:46 ]
- 単にクラス名が長いというだけじゃなくて、
おなじ行に3回も FileSystemView と書かなくてはならないのが問題というか。 せめて、こうするべきだったのでは。 FileSystemView fsv = FileSystemView.instance(); Toolkit.getDefaultToolkit() も同罪。
- 487 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:00:07 ]
- get付けてgetInstance()にしようぜ
- 488 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 00:47:23 ]
- その程度の工夫ではJavaの冗長さはびくともしないぜ
おとなしくIDEに補完させましょう # 型推論があればもうちょっとなんとか…
- 489 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 09:07:28 ]
- しかしHashMapを格納するときにMapで宣言するJavaの文化が型推論の導入を阻むのだった
- 490 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 23:43:57 ]
- 型推論って型の宣言必要ないんだが。
- 491 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 00:01:30 ]
- >>490
Javaっぽい書き方 Map<String, String> map = new HashMap<String, String>(); いわゆる型推論 final map = new HashMap<String, String>(); ↑HashMap<String, String>と補完される。 結局上みたいなやつじゃなくてコンストラクタの型引数が省略可能になるだけになったらしいが。
- 492 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 00:08:21 ]
- ゲネリックス を始めて触った時に typedef が欲しくなったのは俺だけではあるまい。
- 493 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 00:15:51 ]
- 型推論っていえるのか・・・。
- 494 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 06:35:02 ]
- 言語仕様談義はGUIと関係ないずら
- 495 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 00:34:16 ]
- JEditorPaneにsetTextで500KBくらいのHTMLを読ませると、表示にもの凄く時間がかかるんだが何かいい方法は無いですかい
- 496 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 01:09:10 ]
- Swing を捨て SWT の Browser クラスを使う。
- 497 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 01:45:50 ]
- >>496
SWTって本を見かけないから全く触れたことないなあ。 軽いのならちょっと調べてみる、d
- 498 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 01:57:11 ]
- 500kだとブラウザでも遅いと思うんだがSwingはさらにシングルスレッドだからね。
- 499 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 05:55:19 ]
- >>498
シングルスレッドってw
- 500 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 11:28:27 ]
- イベントディスパッチスレッドがひとつしかないことを言ってるのでは
- 501 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 11:31:55 ]
- >>498
現存するGUIツールキットでスレッドセーフなものは無いぞ。
- 502 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 17:33:32 ]
- というか、JWebPaneは今どうなってんの?
- 503 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 18:49:46 ]
- 誰か、というかの前を補完してくれ〜
- 504 名前:デフォルトの名無しさん [2009/04/18(土) 20:50:07 ]
- >> 497
軽いけれど役立たずだよ。
- 505 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 07:12:42 ]
- Java でカスタムブラウザみたいなものを作ろうと思ったら SWT 一択だろ。
それ以外は特にいらないけど。
- 506 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 11:10:11 ]
- カスタムブラウザ自体がアレ。
自前でパースして適当に配置したほうが(ry
- 507 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 11:23:39 ]
- Google Map とか自前でパースして動かすんかい。エラい再発明家だな。
- 508 名前:495 mailto:sage [2009/04/19(日) 15:11:00 ]
- SWT調べてみたけどSwingと連携させるのはなかなか厄介そうだね。
Swingでやるとして、500KBのHTMLを一気にでは無く少しずつ表示させることは出来ないだろうか。 スレッドを使ってやってみたら、HTMLの先頭部分は表示できたんだけどスクロールができない、助けて
- 509 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 15:39:35 ]
- operaはHTML自体はメモリに読んどいて表示はウィンドウに見えてる部分だけ描画する。
メモリ減らしたいならそんな感じだがスクロール早くしたいなら スクロール時の描画アルゴリズムを考えるとかじゃなかろうか。
- 510 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 05:26:43 ]
- Swing の全コンポーネントをヘビーウェイトにするとか、そういうオプションないんだっけ?
EDT 処理やコンポーネントは相互変換できるから、あとそれができれば SWT との混在も 不可能じゃなさそうな気がするけど。
- 511 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 06:58:54 ]
- ポップアップメニューくらいなら重量にできるけど
- 512 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 08:59:15 ]
- ヘビーとライトが混ざると変に重くなるとか
さっさと俺アプリを修正しよう
- 513 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 15:07:48 ]
- 長いので、何回かに分けて質問します。
次のプログラムを実行して、サブフレーム表示ボタンを押すと描画領域を含むサブフレームが表示されるのですが、 サブフレームのクローズボタンを押して閉じてから再度サブフレーム表示ボタンを押すと、サブフレーム表示の瞬間に ちらつきが起こります。一瞬白い部分が見えてから黒く塗りつぶされるのが目につくのです。JFrameのコンテントペインは isDoubleBuffered() がtrueになるので、自動的にダブルバッファリングしてくれるはずと私は理解しているのですが、 なぜかちらつきが起こります。ちなみにactionPerformedメソッドをコメントアウトしてある方に置き換えるとちらつきが 起きないようです。しかし、この回避策はスマートとは言えませんし、なぜこれでうまくいくのかも不明です。 適切な解決策をご存知の方、ご教授ください。私の環境はMac OS X 10.4.11 J2SE 5.0です。
- 514 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 15:11:27 ]
- 513続き
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JFrameTest extends JFrame{ JFrame subFrame; DrawArea drawArea;//subFrameに貼り付ける描画領域 JButton button;//subFrame表示ボタン public static void main(String[] args){ JFrameTest f=new JFrameTest(); f.setVisible(true); } public JFrameTest(){ setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); button=new JButton("サブフレーム表示"); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ if(subFrame==null){ subFrame=new JFrame(); DrawArea drawArea=new DrawArea(); subFrame.add(drawArea,BorderLayout.CENTER); } subFrame.setBounds(210,0,500,400); subFrame.setVisible(true); }
- 515 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 15:13:16 ]
- 513続き
/* public void actionPerformed(ActionEvent e){ if(drawArea==null){ drawArea=new DrawArea(); } if(subFrame!=null){ subFrame.dispose(); } subFrame=new JFrame(); subFrame.add(drawArea,BorderLayout.CENTER); subFrame.setBounds(210,0,500,400); subFrame.setVisible(true); } */ }); getContentPane().add(button, BorderLayout.CENTER); setSize(200,100); } class DrawArea extends JComponent{ public void paintComponent(Graphics g) { g.fillRect(0,0,getWidth(),getHeight()); } } }
- 516 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 15:14:33 ]
- 513
以上です。
- 517 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:30:14 ]
- >>513
手元の環境(OS X 10.5.6 Java 1.6.0_07) だとどちらの コードでも初回表示の時からちらつく. >DrawArea drawArea=new DrawArea(); >System.out.println("drawArea.doubleBuffered : " + drawArea.isDoubleBuffered()); としたときどうなるか?
- 518 名前:513 mailto:sage [2009/04/20(月) 23:49:50 ]
- >>517
もちろんfalseと表示されますね。JComponentのdoubleBufferedはデフォルトでfalseですから。 ttp://wisdom.sakura.ne.jp/system/java/swing/swing8.html を参考に public void actionPerformed(ActionEvent e){ if(subFrame==null){ subFrame=new JFrame(); subFrame.getRootPane().setDoubleBuffered(true); ((JComponent)subFrame.getContentPane()).setDoubleBuffered(true); DrawArea drawArea=new DrawArea(); subFrame.add(drawArea,BorderLayout.CENTER); } subFrame.setBounds(210,0,500,400); subFrame.setVisible(true); } と変えてみましたが、結果は同じでした。 これってどうしようも無いんですかねえ。実はJFrameだけでなく、JDialogでも同様のことが起こるわけですが、 みなさんこの辺のことは不満を感じないのでしょうか。まあ実用上問題はないのだけれど、見た目も大事だと思うんですよ。
- 519 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 00:55:01 ]
- JListはsetVisibleRowCountで縦の長さを指定できますが、
横幅を指定するのはどうやるのでしょうか? DefaultListModelで3文字ぐらいをaddしても横幅は8文字分とかにしたいです。
- 520 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 01:59:41 ]
- 519ですが調べてみたら何とか解決しそうです。
- 521 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 02:30:23 ]
- マカウザイ。マクのはサン純正じゃないからアポーに問い合わせろ。
- 522 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 05:20:38 ]
- N+あたりの一部のキチガイのせいで Mac と聞いただけで過剰反応する奴が増えたなぁ。
コンピュータ関係だと使いやすい Unix 端末として使ってる人も多そうなのに。
- 523 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 08:13:22 ]
- 先入観だけど、多く…ないと思う、多いの?
Macは昔から嫌いだが、MacのJavaは動作が違うのか妙に嫌われてるな
- 524 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 08:43:10 ]
- 今日JJUGのイベントにいくんだけど、「複数のGUIウィンドウプログラムが動くシングルウィンドウシステムとその応用」
を発表する会社のページ見るとかなりトンデモな発表になりそうで今から楽しみだぜ、 ttp://www.sys-audit.com/indexjp.html
- 525 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 08:53:44 ]
- >>524
そこ読んだ限りでは単なる C/S システムライクなアプレット実装だな。 つうかページ一番下 > 探偵を使って当研究所関係者を執拗に尾行する企業があります。社員として採用してただ > 同然で技術を入手しようとお考の上でのことでしょうが、暴力行為であり甚だしい > 人権侵害ですのでお止めください。不正競争防止法に触れる可能性もあります。 妄想ワロタw
- 526 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 10:48:11 ]
- >>524
つっこみどころ多すぎてワロタw >ウィンドウの大きさを少し変化させてウィンドウの重なり具合を変化させることにより、 >ウィンドウマネージャに描画指示を出させます コンポーネント入れ変えたら JComponent#revalidate() 呼べば?とか そもそも CardLayout 使えばいいんじゃね?とか…
- 527 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 18:27:38 ]
- >ウィンドウの大きさを少し変化させてこれダーティーとみなされずにリペイントマネージャに無視られるんじゃなかろうか?
revalidate呼べよ。
- 528 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 01:24:03 ]
- >>524
言ったなら感想書いてくれよ www.sys-audit.com/index1.html とか見るとこの会社(というかこのおっさん)すごすぎるぞww
- 529 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 04:28:42 ]
- ユニックス端末ならリナックスでいいだろ。
xterm始めまともなターミナルいくらでもあるし。 わざわざマク使う様な香具師は皆無。マクって、あんまりオープンな環境じゃないしな。ソース見たい時に詰まる事は多い。
- 530 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 07:47:58 ]
- XP は飽きた。Vista もなんだかなぁ。
Unix 系のターミナルやコマンド、gcc が付いてて Photoshop, Illustrator も動く。 名前を聞いて一般人が引かない。家族も使うしそこらの PC 屋で吊るしで買ってこれる。 そんな理由で MacBook 使っている。カーネルのソース必須な人は Linux 使えば 良いと思うけど、Unix のシェル積んでて主要なプロプライエタリソフトも使えるんで 便利だよ。仕事場で 5 人ほど自宅 PC を Mac に乗り換えてる。 スレチなんでこれ以上はやめとくが。
- 531 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 08:41:24 ]
- windowsじゃないと出来ないことってあるよね。
飽きたとか言う以前にwindows(PC)使ってる人は、わざわざ高いMACなんか使わずそれぞれ目的があるんからPCにしてるんだと思うよ。 macだとquicktimeとobjcが標準なのが魅力だけどそれだけかもね。 windows media はどうしてるの? ほかにwinだとゲーム(GPUプログラム)とか。
- 532 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:48:48 ]
- >>531
QuickTimeよりは、DirectShowの方がスジが良いんじゃないかと思う。 といってもQuickTimeのAPIとかぜんぜん知らないんで、想像だけど。 DirectShowを使ったアプリ、コーデックはたくさんあるのに、 QuickTimeを使ったアプリってあまり見ない のを考慮すると、使いづらいんじゃないかと思う。 個人的にはQuickTimeアプリってiTunesしか知らない。 コーデックはDivXとFlip4macとPerianぐらい?Flip4macはでかいwmv動画再生しようとすると、 「インポートしています」というダイアログで長々と待たされるのでイライラする。
- 533 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 00:07:25 ]
- マカは盲目だしなあ。もうそんな時代じゃないのに。
- 534 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 00:18:27 ]
- 俺たちのサンが消滅しちゃったって言うのに、どんな時代だって?
- 535 名前:デフォルトの名無しさん [2009/04/23(木) 01:26:24 ]
- 個人的にはNetBeansとOpenOfficeの行く末が心配です。
- 536 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 10:37:08 ]
- 自分の好きなの使えばよろし、
俺は市販のゲームだとかネトゲだとか、 自分の好きなフリーソフトがあるから、 それだけの理由でずっとメインストリーム使ってる。
- 537 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 03:37:23 ]
- ooは金にならないから厳しいだろうなあ。
- 538 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 05:03:45 ]
- Solaris売るには必要だけどね。
あとMSの売り上げ減らすことで、相対的な売り上げがあがる。
- 539 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 16:22:35 ]
- oo有るからってsolaris売れる訳でもないし。
msの客とは重なってないと思うよ。あっちは出来る本とかの充実やみんな使ってる安心感が大事。
- 540 名前:443 mailto:sage [2009/04/26(日) 11:24:07 ]
- >>445で教えて貰った方法を試したところ、
ツールチップを出したままホイール回してもスクロールしなくなりました。 さらに、ツールチップをクリックしてもツールチップ消えません。 なんいこったいでした。 そんなわけで、ホイール回したら問答無用でツールチップを消したいのでちょっと試してきます。
- 541 名前:443 mailto:sage [2009/04/26(日) 12:23:22 ]
- JScrollPane spdf = new JScrollPane(hogeFrame);
spdf.addMouseWheelListener(new MouseWheelListener() { @Override public void mouseWheelMoved(MouseWheelEvent e) { // ホイールを回したらツールチップを消す ToolTipManager.sharedInstance().mousePressed(null); } }); こんな酷いコードになりましたが、 どうにかマウスホイール回したらツールチップが消えるようになり スクロールもスムーズに感じます。
|

|