トップページ⇒tech
1001コメント319KB

Java低速GUI Swing 8

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/11/21(金) 11:24:21
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 7
http://pc11.2ch.net/test/read.cgi/tech/1204155623/
Java低速GUI Swing 6
http://pc11.2ch.net/test/read.cgi/tech/1190807478/
Java低速GUI Swing 5
http://pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
http://pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50
0412デフォルトの名無しさん2009/03/15(日) 19:27:20
>>411
気持ちはありがたいが、既に本棚にあるのだww
0413デフォルトの名無しさん2009/03/15(日) 19:29:06
JavaはJava教室で買わされた本しかもってない、
Swingはグーグル先生に聞いてなんとかした、
読んでないからいい本なんて分からないんだぜ

Effective Javaは良さそうだな、読んでみようか
0414デフォルトの名無しさん2009/03/16(月) 00:31:16
本ではないが、http://java.sun.com/docs/books/tutorial/uiswing/
0415デフォルトの名無しさん2009/03/16(月) 00:57:22
>>413
ちゃんと本を読まなかったので、
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
の必要性を知らなかった。
人が書いたコードを見ても、余計なことをしてると思っていた。
0416デフォルトの名無しさん2009/03/16(月) 02:46:43
そんなの見た事無いや。orz
解説頼む。
0417デフォルトの名無しさん2009/03/16(月) 03:12:48
>>416
Swingは、スレッドセーフじゃないから、初期化もイベントディスパッチスレッドで実行しないといけない。
invokeLaterを使うと後でイベントディスパッチスレッドで実行される。
0418デフォルトの名無しさん2009/03/16(月) 03:23:09
>>416
スレッドセーフじゃないんだってさ。
0419デフォルトの名無しさん2009/03/16(月) 10:10:35
本ならSwing Hackが実用的かも。
Swingの入門書の次くらいに読むといい本。
0420デフォルトの名無しさん2009/03/16(月) 23:55:45
>>419
本屋でSwing Hackをみてきました。見た感じTIPS集みたいですね。
よさそうな入門書だと「Java GUIプログラミング」のVol.1, Vol2なのですが、
ちょっと本気すぎる感じです。以外にSwingの本って売ってないですね。
0421デフォルトの名無しさん2009/03/18(水) 02:54:08
>>420
本を買う前に最初はsunのjavaサイトにあるswing関連のチュートリアルで十分じゃないか?
APIリファレンスのswingコンポーネントクラスの説明文の多くにリンクがあったりする。
0422デフォルトの名無しさん2009/03/18(水) 02:58:11
あ、すま
>>414で紹介されてるね。
0423デフォルトの名無しさん2009/03/18(水) 03:06:57
英語を読むのは面倒くさい
いや読むけどさ(ブツブツ
0424デフォルトの名無しさん2009/03/18(水) 04:21:31
>>420
入門書ってどれもほとんど大差ないから。
「Java GUIプログラミング」が本気すぎるとなると習う前に慣れたほうが良いかも。
となるとSwingチュートリアルのソースがベストかな。
英文を隅々まで読まなくても、ソース読んで、実行してみればだいたいわかってくる。
0425デフォルトの名無しさん2009/03/18(水) 20:45:24
>>424
ありがとう!やってみる。
0426デフォルトの名無しさん2009/03/18(水) 22:52:15
JOptionPane#showXXXDialog()で適当なコンポーネントをつめたJPanelを
表示した際にダイアログのボタンじゃなくてJPanel内の特定のコンポーネントの
方にフォーカスがあたるようにすることってできる?
0427デフォルトの名無しさん2009/03/19(木) 01:06:24
>>426
???
0428デフォルトの名無しさん2009/03/19(木) 01:47:02
>>427
JOptionPaneをカスタマイズしてJPanelを埋め込んだ場合に、ダイアログのOK/Cancelボタンではなくて追加したJPanel内のコンポーネントに入力フォーカスを当てたい、ということだと思われる。
0429デフォルトの名無しさん2009/03/19(木) 08:22:29
できると思う

swing フォーカスでぐぐりゃ解決しそう
0430デフォルトの名無しさん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ボタンの方になってしまいました…
04314302009/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);
}
0432デフォルトの名無しさん2009/03/19(木) 12:09:21
>>431
実際にフォーカスを取得するまで、
requestFocusInWindow() を何度も呼んでみるとか。

ちょっと力技かもしれないけど HierarchyListener を使えば
JOptionPane.showXxxDialog() で作られるダイアログを取得できる。
そのダイアログに対して
WindowListener か ComponentListener を使えばよい。

「コンポーネントが画面に表示されたときに特定の処理を行う」
って、意外と難しいよね?
JSplitPane が表示されたときディバイダを中央に移動させる方法を
見つけるのに、すごく苦労したことがある。
04334302009/03/20(金) 00:09:49
>>432
なるほど HierarchyListener は思いつきませんでした。これなら動きそうですね。

>>431 のコードはEventQueue#invokeLater()じゃなくて javax.swing.Timer で
1秒後とかやったら期待通り動いたんでタイミングの問題なんでしょうねぇ…
PC性能によって必要な delay 時間が変わるからTimerでやるのは微妙だなー
と思ったけど何度でも呼んでみる的アプローチで繰り返しありの Timer を
設定してフォーカスがとれたら Timer を止める、とかでもできそうですね…
0434デフォルトの名無しさん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;

うそくさいし、ひどく面倒
04354302009/03/20(金) 13:14:55
>>434
確かに JOptionPane を直接使えばJDialogがとれますね。参考になります。
戻り値の扱い周りとかが大変面倒くさそうですけど…
0436デフォルトの名無しさん2009/03/20(金) 13:26:02
>>432
>「コンポーネントが画面に表示されたときに特定の処理を行う」
Component#addNotify() / removeNotify()をオーバーライドでできると思う。
0437デフォルトの名無しさん2009/03/20(金) 17:46:14
>>436
addNotify() が呼ばれたとき、
そのコンポーネントが表示されてるとは限らない。
たとえば Window.pack() を呼んだとき、
(たとえウィンドウが不可視であっても)
ウィンドウ内のすべてのコンポーネントの
addNotify() が呼ばれる。

あと、親コンテナの doLayout() が呼ばれるまでは
コンポーネントのサイズが確定しないので、
オーバーライドした addNotify() から
JSplitPane.setDividerLocation() を呼んでも機能しない。
0438デフォルトの名無しさん2009/03/21(土) 15:59:56
JTableのセルをアニメーションして移動したり表示したりしたいのですが
どういう方法が一番いいでしょうねぇ・・・
0439デフォルトの名無しさん2009/03/21(土) 19:12:38
単純にセルを描画する命令をタイマーで呼ぶしか方法はないのでは?
その具体的な方法でしょうか?
0440デフォルトの名無しさん2009/03/21(土) 19:57:58
えーと、よくSFとかでありますね
上から1行ずつアニメーションしてさらさらと出てくるような表や
項目を追加したらふわっと最終行が浮かんでくる
といったような描画をどうやってやるかということに悩んでいます
Timer自体はいくらでも使えるのですが
0441デフォルトの名無しさん2009/03/21(土) 20:18:33
JTableはセルそれぞれがコンポーネントというわけではないので、あまりスマートにはできません。
上げられた二つの例に限ってですが、代替策として、glasspaneでだますというのはどうでしょう?
それがいやなのであれば、Timerかなにかでアニメーションさせてください。
0442デフォルトの名無しさん2009/03/21(土) 22:18:49
>>440
JXLayer使えばいいと思うよ。
0443デフォルトの名無しさん2009/03/21(土) 23:44:17
JTreeでツールチップ表示中にホイールスクロールするとやたら重いんだが

どうにか、普通にスクロールさせる方法はないかね
0444デフォルトの名無しさん2009/03/22(日) 04:22:23
ツールチップが重い処理だからそんなもの。
無効にするしか。
0445デフォルトの名無しさん2009/03/22(日) 13:51:40
>>443
ツールチップを常に重量コンポーネントとして表示すればよいと思う。

普通 JScrollPane でコンポーネントがスクロールされるときは、
現在表示されているビューポートの外観を少しずつずらしてコピーすることで、
高速なスクロールを実現している。
しかし、軽量コンポーネント(たとえばツールチップ)が
上のレイヤーに重なっているときは、
スクロールされるたびにビューポート全体を再描画しなくてはならないので遅くなる。
0446デフォルトの名無しさん2009/03/22(日) 20:35:26
>>441
ありがとうございます
GlassPaneを調べてみますね。それ以外の場合、Timerでアニメーションするとよいとのことですが
アニメーションの内容はどのようなものを?
TableSellRendererやJTableなどをいくら拡張しても中々難しそうですね・・・

>>442
なかなかすごそうなコンポーネントです。これはどういうものでしょうか?
0447デフォルトの名無しさん2009/03/26(木) 02:49:32
最近beansBindingを触って疑問に思ったのですが、
ColumnBindingに対してvalidatorを設定した場合、
バリデーションエラーが発生した行の取得はどのようにすればよいのでしょうか?
0448デフォルトの名無しさん2009/03/28(土) 01:00:27
横方向に中央であればFlowLayoutでシンプルに実現できますが、縦方向に中央に配置したい場合の簡単な実現方法はありませんでしょうか?
0449デフォルトの名無しさん2009/03/28(土) 07:03:52
>>448
Y_AXISなBoxLayoutで子コンポーネントそれぞれにsetAlignmentX()でCENTER_ALIGNMENTを設定するのは?
FlowLayoutと違って子コンポーネントの幅は推奨サイズでなく最大サイズに影響されるので、
推奨サイズにしたいなら子コンポーネントの種類次第では最大サイズを設定してやらないといけないけれど。
0450デフォルトの名無しさん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()で詰めるというのはありでしょうか?
0451デフォルトの名無しさん2009/03/28(土) 12:54:35
>>450
縦方向に中央揃えでコンポーネントを並べることと勘違いしてた。
Box b = Box.createVerticalBox();
b.add(Box.createVerticalGlue());
b.add(コンポーネント);
b.add(Box.createVerticalGlue());
みたいな感じでいけるんじゃないかな。
でももしかすると上下のグルーが同じ比率で伸びずに完全なセンタリングにならないかも。
その場合、どれくらいで簡単な実現方法とならないかが分からないけれど、
GridBagLayoutやGroupLayoutみたいな少し複雑なレイアウトマネージャを使うとか、
縦方向について中央配置するマネージャを自作するとか。
0452デフォルトの名無しさん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);
0453デフォルトの名無しさん2009/03/29(日) 13:32:37
初心者です。
javaでゲーム製作の本を買って、
コードがすべてAWTで書かれてるんですが、
swing用の本を買いなおしたほうがいいですか?
0454デフォルトの名無しさん2009/03/29(日) 15:23:18
>>453
別にそんなことないだろ。
Swingの本なら、awtの知識は前提としているだろうし。
0455デフォルトの名無しさん2009/03/29(日) 17:13:35
>>454
ありがとうございます。
今の本で勉強してみます。
0456デフォルトの名無しさん2009/03/29(日) 23:39:38
>>453
時間の無駄をいとわないならその本でOK。
時間の無駄がいやなら買いなおすべし。
0457デフォルトの名無しさん2009/03/30(月) 00:44:33
ゲームを作るつもりでその本を買ったなら Swing の本を
買い直す必要は全くないと思うが…
Swing の勉強をするつもりで買ったの?
0458デフォルトの名無しさん2009/03/30(月) 04:25:34
あとでswingの本読んで、swing化してみるのは実力が付いていいと思うけどね。
基本は大事。
0459デフォルトの名無しさん2009/03/30(月) 06:53:59
>>440
>>453
ゲームで、グラフィック表示ばっかりなら、Swingはあまり関係ないと思われる。
java.awt.Graphics2Dを使ってるから「コードがすべてAWT」というオチではないよな?
0460デフォルトの名無しさん2009/03/30(月) 09:44:16
440関係なかった・・・
0461デフォルトの名無しさん2009/03/30(月) 09:49:53
javaでゲームだと結局java2dだとか3d使うんだべ
0462デフォルトの名無しさん2009/03/30(月) 11:50:26
そんなことないべ。
コマンドアドベンチャーとかなら、普通に既存コンポーネントだけで作れるべ。
0463デフォルトの名無しさん2009/03/30(月) 17:57:11
>>461
シミュレーションだとJava2DとSwingでがっちり組むみたいよ。
最近ので、ちょっと期待してしまうDarkSideとか
http://www.darkside-game.net/index.jsp

自分ではJava3Dを使いたいんだけど再配布がな・・・
0464デフォルトの名無しさん2009/03/30(月) 22:06:37
>>463
Java Web Startにすると、そのあたりも自動でインストールしてくれるらしい
0465デフォルトの名無しさん2009/04/02(木) 23:33:46
>>464
そんなうまい話があるわけない。
開発者の手間は変わらない。(JNLPの分面倒か)
0466デフォルトの名無しさん2009/04/03(金) 04:05:32
>>465は技術者として終わっとるな。
0467デフォルトの名無しさん2009/04/03(金) 04:11:55
Java Web StartでのJava3D配布は、このあたりで話題になってた
http://pc11.2ch.net/test/read.cgi/tech/1033703640/909-915

詳しくはここを
https://j3d-webstart.dev.java.net/test/

これが参考になるかもしれない。
http://ziddy.japan.zdnet.com/qa4257080.html
04684652009/04/03(金) 07:15:22
>>466
"自動で"とか勘違いさせるような発言について書いたんだが
0469デフォルトの名無しさん2009/04/03(金) 08:21:42
Java3Dサイトのデモでは自動でJava3Dがインストールされるように見えるが。
0470デフォルトの名無しさん2009/04/03(金) 08:59:32
スタンドアロンでも普通に実行できるようにならんかね
ネットワークアクセスしてもいいから
0471デフォルトの名無しさん2009/04/03(金) 09:41:54
jarファイルにすれば実行できるぞ
0472デフォルトの名無しさん2009/04/03(金) 11:24:57
JFileChooser で、ファイルチューザーのダイアログを開いた時に表示されるディレクトリを
マイコンピュータにしたいんですが、どうしたらいいでしょうか?
0473デフォルトの名無しさん2009/04/04(土) 16:14:59
任意のファイルを自動でインスコできたら、セキュリティ上問題が有るな。
0474デフォルトの名無しさん2009/04/04(土) 18:51:59
だから認証が出るわけだな。いまさら何を。
0475デフォルトの名無しさん2009/04/05(日) 04:49:56
マニフェストに記述した JAR 内の画像をアイコンにするくらいしてほしいね。
まぁ JWS でデスクトップに好きな画像のショートカットアイコン作れるけどさ。
0476デフォルトの名無しさん2009/04/05(日) 12:17:50
テキストを編集できるフレームで特定の文字がある行だけ
編集不可能にするにはどうしたら良いでしょうか。
netBeansのエディタみたいにするには?
0477デフォルトの名無しさん2009/04/05(日) 14:27:24
カーソル移動のイベントを受け取って、その位置の含まれる行を見て
setEditable() で切り替えるとか。
0478デフォルトの名無しさん2009/04/05(日) 15:35:57
実際にやったことないから分からないけど
DocumentListener とか使うのでは
0479デフォルトの名無しさん2009/04/05(日) 15:38:42
あるいは CaretListener を使って
キャレットが移動するたびに必要に応じて
setEditable(boolean) を呼ぶとか。
こっちのほうがいいかも。
0480デフォルトの名無しさん2009/04/07(火) 14:41:24
>>477,478,479 さんありがとうございます。
試してみます。
0481デフォルトの名無しさん2009/04/14(火) 19:46:23
スレが過疎ってるスキに、くだらないこと書かしてもらうが
FileSystemView fileSystemView = FileSystemView.getFileSystemView();
この冗長さは、どうにかならんのか?
0482デフォルトの名無しさん2009/04/14(火) 19:49:55
IME にでも登録しとけよ。俺は Eclipse のオナペット使うけど。
0483デフォルトの名無しさん2009/04/14(火) 20:03:54
>>481
嫌ならもう少し短い変数名使えば?
0484デフォルトの名無しさん2009/04/14(火) 23:28:39
ラッパ書いてヲレフレームワークに突っ込めよ。

import ore;
ore = new ore.gFSV();
で出来るようになるぜ。
0485デフォルトの名無しさん2009/04/15(水) 01:13:41
Nimbusのとかに比べると、まだまだだな。
InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.java
0486デフォルトの名無しさん2009/04/15(水) 17:57:46
単にクラス名が長いというだけじゃなくて、
おなじ行に3回も FileSystemView と書かなくてはならないのが問題というか。
せめて、こうするべきだったのでは。
FileSystemView fsv = FileSystemView.instance();

Toolkit.getDefaultToolkit() も同罪。
0487デフォルトの名無しさん2009/04/15(水) 18:00:07
get付けてgetInstance()にしようぜ
0488デフォルトの名無しさん2009/04/16(木) 00:47:23
その程度の工夫ではJavaの冗長さはびくともしないぜ
おとなしくIDEに補完させましょう

# 型推論があればもうちょっとなんとか…
0489デフォルトの名無しさん2009/04/16(木) 09:07:28
しかしHashMapを格納するときにMapで宣言するJavaの文化が型推論の導入を阻むのだった
0490デフォルトの名無しさん2009/04/16(木) 23:43:57
型推論って型の宣言必要ないんだが。
0491デフォルトの名無しさん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>と補完される。

結局上みたいなやつじゃなくてコンストラクタの型引数が省略可能になるだけになったらしいが。
0492デフォルトの名無しさん2009/04/17(金) 00:08:21
ゲネリックス を始めて触った時に typedef が欲しくなったのは俺だけではあるまい。
0493デフォルトの名無しさん2009/04/17(金) 00:15:51
型推論っていえるのか・・・。
0494デフォルトの名無しさん2009/04/17(金) 06:35:02
言語仕様談義はGUIと関係ないずら
0495デフォルトの名無しさん2009/04/18(土) 00:34:16
JEditorPaneにsetTextで500KBくらいのHTMLを読ませると、表示にもの凄く時間がかかるんだが何かいい方法は無いですかい
0496デフォルトの名無しさん2009/04/18(土) 01:09:10
Swing を捨て SWT の Browser クラスを使う。
0497デフォルトの名無しさん2009/04/18(土) 01:45:50
>>496
SWTって本を見かけないから全く触れたことないなあ。
軽いのならちょっと調べてみる、�d
0498デフォルトの名無しさん2009/04/18(土) 01:57:11
500kだとブラウザでも遅いと思うんだがSwingはさらにシングルスレッドだからね。
0499デフォルトの名無しさん2009/04/18(土) 05:55:19
>>498
シングルスレッドってw
0500デフォルトの名無しさん2009/04/18(土) 11:28:27
イベントディスパッチスレッドがひとつしかないことを言ってるのでは
0501デフォルトの名無しさん2009/04/18(土) 11:31:55
>>498
現存するGUIツールキットでスレッドセーフなものは無いぞ。
0502デフォルトの名無しさん2009/04/18(土) 17:33:32
というか、JWebPaneは今どうなってんの?
0503デフォルトの名無しさん2009/04/18(土) 18:49:46
誰か、というかの前を補完してくれ〜
0504デフォルトの名無しさん2009/04/18(土) 20:50:07
>> 497
軽いけれど役立たずだよ。
0505デフォルトの名無しさん2009/04/19(日) 07:12:42
Java でカスタムブラウザみたいなものを作ろうと思ったら SWT 一択だろ。
それ以外は特にいらないけど。
0506デフォルトの名無しさん2009/04/19(日) 11:10:11
カスタムブラウザ自体がアレ。
自前でパースして適当に配置したほうが(ry
0507デフォルトの名無しさん2009/04/19(日) 11:23:39
Google Map とか自前でパースして動かすんかい。エラい再発明家だな。
05084952009/04/19(日) 15:11:00
SWT調べてみたけどSwingと連携させるのはなかなか厄介そうだね。
Swingでやるとして、500KBのHTMLを一気にでは無く少しずつ表示させることは出来ないだろうか。
スレッドを使ってやってみたら、HTMLの先頭部分は表示できたんだけどスクロールができない、助けて
0509デフォルトの名無しさん2009/04/19(日) 15:39:35
operaはHTML自体はメモリに読んどいて表示はウィンドウに見えてる部分だけ描画する。
メモリ減らしたいならそんな感じだがスクロール早くしたいなら
スクロール時の描画アルゴリズムを考えるとかじゃなかろうか。
0510デフォルトの名無しさん2009/04/20(月) 05:26:43
Swing の全コンポーネントをヘビーウェイトにするとか、そういうオプションないんだっけ?
EDT 処理やコンポーネントは相互変換できるから、あとそれができれば SWT との混在も
不可能じゃなさそうな気がするけど。
0511デフォルトの名無しさん2009/04/20(月) 06:58:54
ポップアップメニューくらいなら重量にできるけど
■ このスレッドは過去ログ倉庫に格納されています