- 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
- 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 ]
- ポップアップメニューくらいなら重量にできるけど
|

|