- 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
- 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***といった感じで定義しても問題ないでしょうか
|

|