Java低速GUI Swing 9
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/12/19(土) 23:13:39しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 8
http://pc12.2ch.net/test/read.cgi/tech/1227234261/
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
0159デフォルトの名無しさん
2010/02/07(日) 11:51:22こんなの見つけた。動作は見てない。
http://www.beginner-java-tutorial.com/scrollable-jpopupmenu.html
0160デフォルトの名無しさん
2010/02/07(日) 15:17:170161デフォルトの名無しさん
2010/02/07(日) 15:41:54どこの誤爆?
0162デフォルトの名無しさん
2010/02/07(日) 18:34:50ありがそうございます ^^
0163デフォルトの名無しさん
2010/02/07(日) 18:38:02で透明度を設定すると、3回に1回くらい一瞬だけ真っ黒になるのだけれど、これはグラフィック性能がクソだからなのでしょうか?
0164デフォルトの名無しさん
2010/02/07(日) 19:16:28たぶん、PCニュース板あたりじゃない?
あそこではMacを、>>160みたいに馬鹿にしているし
0165デフォルトの名無しさん
2010/02/08(月) 00:32:540166デフォルトの名無しさん
2010/02/08(月) 14:26:220167デフォルトの名無しさん
2010/02/10(水) 10:32:30どのように処理すればいいのでしょうか?
行ごと、列ごとは出来ましたが、
各セルごとができません。
ご存知の方がおられましたら、
ご教示していただけませんでしょうか?
0168デフォルトの名無しさん
2010/02/10(水) 10:43:530169デフォルトの名無しさん
2010/02/10(水) 10:45:500170デフォルトの名無しさん
2010/02/10(水) 11:05:040171デフォルトの名無しさん
2010/02/10(水) 11:09:540172デフォルトの名無しさん
2010/02/10(水) 11:13:00ColorRenderer というクラスがあるから見てみ。
0173デフォルトの名無しさん
2010/02/10(水) 11:36:45オーバーライドし、スーパークラスの同名メソッドを読んだあと this
めんどくせ
0174デフォルトの名無しさん
2010/02/10(水) 12:07:420175デフォルトの名無しさん
2010/02/10(水) 15:46:45このスレ、質問者になりすまして回答してる人がいるね。
0176デフォルトの名無しさん
2010/02/10(水) 15:51:160177デフォルトの名無しさん
2010/02/10(水) 21:46:58ニートが増えたんだろうな
0178デフォルトの名無しさん
2010/02/10(水) 21:55:210179デフォルトの名無しさん
2010/02/10(水) 22:27:480180デフォルトの名無しさん
2010/02/11(木) 09:43:02みたいなことを簡単にできる方法ってありますか?
0181デフォルトの名無しさん
2010/02/11(木) 09:46:28そういうフレームワークちょいちょいと作れば?
0182デフォルトの名無しさん
2010/02/11(木) 14:21:03リスナ上でやるには十分遅い処理じゃね?
0183デフォルトの名無しさん
2010/02/11(木) 21:52:100184デフォルトの名無しさん
2010/02/12(金) 03:11:41http://pc12.2ch.net/test/read.cgi/tech/1264635554/
Ruby 初心者スレッド Part 34
http://pc12.2ch.net/test/read.cgi/tech/1265467681/
Rubyについて Part 39
http://pc12.2ch.net/test/read.cgi/tech/1200175247/
Rubyの宿題教えてください。2限目
http://pc12.2ch.net/test/read.cgi/tech/1233033091/
愛国Ruby
http://pc12.2ch.net/test/read.cgi/tech/1201603546/
魁け! Ruby 1.9.X
http://pc12.2ch.net/test/read.cgi/tech/1249737531/
Rubyについて(アンチ専用) Part004
http://pc12.2ch.net/test/read.cgi/tech/1155031689/
【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc12.2ch.net/test/read.cgi/tech/1170047838/
Ruby最高や!
http://pc12.2ch.net/test/read.cgi/tech/1100563765/
Jython、Groovy、JRuby - どれが一番効率的?
0185デフォルトの名無しさん
2010/02/18(木) 12:58:02末端の JButton, JTextField あたりから組み立てる派かどっちよ?
0186デフォルトの名無しさん
2010/02/18(木) 15:03:130187デフォルトの名無しさん
2010/02/20(土) 11:12:020188デフォルトの名無しさん
2010/02/20(土) 11:38:010189デフォルトの名無しさん
2010/02/20(土) 21:18:02javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).getCapabilities(null).isAccelerated()
これが false になってるのがわかりました。起動直後は true で、サクサク動きます。
これを防ぐ方法は無いでしょうか?
javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).setAccelerationPriority(1.0f)
としてみましたが、やっぱりしばらく使ってると同じ状態になってしまいました。
環境は以下のとおりです。
Java 6u18
Windows XP 32bit
NVIDIA GeForce Go 6600 VRAM 128 MB
0190デフォルトの名無しさん
2010/02/20(土) 22:53:51とりあえずjavaのオプションからDirectXとOpenGLのバージョンとソースすべてうp。
0191デフォルトの名無しさん
2010/02/20(土) 23:46:18問題のアプリは主に jEdit (http://www.jedit.org) です。
V2C でも似たような問題があるようですが、実行中に問題が発生するというわけじゃなさそうです。
http://v2c.s50.xrea.com/manual/win.html#problem
DirectX のバージョンは 9.0c です。
javaw.exe 起動時に -Dsun.java2d.opengl=true すればこの問題は起こらないんですが、
ときどき他のウィンドウと干渉してゴミが表示されたりします。これを回避するために
できれば OpenGL は使わないで済ませたいのですが、方法が見つからない状態です。
0192デフォルトの名無しさん
2010/02/21(日) 15:30:510193デフォルトの名無しさん
2010/02/21(日) 18:16:58これ?
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6921654
取り敢えず他のオプションも試してみれば。
http://www.ea.u-tokai.ac.jp/~sakata/jdk6/docs/ja/technotes/guides/2d/flags.html
OpenGLはOpenGLで問題あるみたいだけど。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723523
とか。
何にしてもスレ違いですね。
0194デフォルトの名無しさん
2010/02/23(火) 00:20:02ありがとうございます。
リンクしていただいたバグは VRAM 上のイメージとメインメモリ上のイメージとで
動作が異なると言うことで、速度低下だけが問題になっている >189 の問題とは違うもの
みたいです。
translaccel と ddforcevram がそれっぽいなぁと思って試してみたんですが、やっぱり
しばらく使ってると問題が発生してしまいました。
ソースコードに問題があるのなら修正に挑戦する気はあるのですが、再現させる手段が
さっぱりなのでどこに手を付けていいものかさっぱりな状態です。
他に同じ症状の情報が見当たらないので、やっぱり環境に大きく依存する問題なのかも
しれません。
0195デフォルトの名無しさん
2010/02/23(火) 12:33:28ってどこからも呼ばれないの?
0196デフォルトの名無しさん
2010/02/23(火) 12:35:00beansbinding の org.jdesktop.observablecollections.ObservableCollections.ObservableListImpl.fireElementChanged(int)
0197デフォルトの名無しさん
2010/02/23(火) 20:15:560198デフォルトの名無しさん
2010/02/28(日) 04:50:07ゲームのマップエディタ適当にSwingで適当につくろうとして久々触ったけど
相変わらず糞だなぁ、、いつまともになるんだろこれ。。
0199デフォルトの名無しさん
2010/02/28(日) 06:00:240200デフォルトの名無しさん
2010/02/28(日) 06:27:000201デフォルトの名無しさん
2010/02/28(日) 09:15:14適正な言語も選べないのか
0202デフォルトの名無しさん
2010/02/28(日) 21:58:51cとかで組めるならjni使えばいい話し出し。
0203デフォルトの名無しさん
2010/02/28(日) 22:43:230204デフォルトの名無しさん
2010/03/03(水) 02:33:210205デフォルトの名無しさん
2010/03/03(水) 03:32:540206デフォルトの名無しさん
2010/03/03(水) 04:57:50ネイティブのそれと微妙に違っててイラっとすることくらいなんだけど
操作感覚にダイレクトに突き刺さってくるので困る。
SWT の作りは大嫌いだし(いまどきイベントループとか)
全般的な命名も好きになれないし(Shell って名前をアレに使うなよ)
体感速度に差があるとも思えないんだけど、
この部分だけが引っかかってしまう。
自分で作るんなら Swing なんだが
使うんだったら SWT みたいな。
0207デフォルトの名無しさん
2010/03/03(水) 11:35:130208デフォルトの名無しさん
2010/03/03(水) 13:39:340209デフォルトの名無しさん
2010/03/03(水) 14:01:080210デフォルトの名無しさん
2010/03/03(水) 22:19:170211デフォルトの名無しさん
2010/03/03(水) 23:08:390212デフォルトの名無しさん
2010/03/04(木) 02:13:19http://swingwt.sourceforge.net/
2005年頃に使ったときは、微妙な互換性不足が残念だった覚えがあるが、
今ならよくなってるかもしれない。試してみたら?
0213デフォルトの名無しさん
2010/03/05(金) 17:08:54いまどきイベントループ、って
どんな言語でもイベントループなんじゃないの?
0214デフォルトの名無しさん
2010/03/05(金) 19:11:480215デフォルトの名無しさん
2010/03/06(土) 09:11:25イベントループしてました、なんて事にさっきまでハマってたところ。
元々イベントループなんざシングルタスク言語やノンプリエンプティブな環境向けの手法だお。
Java のようなマルチスレッド環境では使わないに越したことはない。green thread 時代に
yield() 駆使してた悪夢がよみがえる。
0216デフォルトの名無しさん
2010/03/06(土) 21:58:42仕事ではCOBOLとかC言語が多かったのでJavaはかじった程度の知識しかありません。
ところで、コンポーネントのリスナークラスとか追加するときって、無名クラス使うのが
一般的なんですか?(本とか読むとそれが多いと書いてあったので)
個人的には画面系のプログラムも作ったこともなかったので、よく分からないんですが、
コンポーネントの生成や属性の設定の中に、ロジックが入ってくる様に思えて
なんか違和感を感じるんで、今は無意味でもクラスに名前を書いて内部クラスにしてます。
でも、無名内部クラスにするが一般的なら、それになれとかないとなぁと思い質問しました。
0217デフォルトの名無しさん
2010/03/06(土) 22:03:15どういう違和感を感じるんですか。
0218デフォルトの名無しさん
2010/03/06(土) 22:07:05アプリケーションと画面を同一クラスとして作っていると
そんな感じになってしまうかもしれない。
0219デフォルトの名無しさん
2010/03/06(土) 22:13:36ちゃんと勉強するとなるとかなり大変なんで初心者・初級者用のgui教本は全てそんなもんですよ。
分離しようとすると結局コード量が多くなるんでもしちゃんとguiやるならIDEないと無理でしょうね。
0220デフォルトの名無しさん
2010/03/06(土) 22:14:450221デフォルトの名無しさん
2010/03/06(土) 22:40:14分かりやすい・自然だと思う方を採用したらいいんじゃないでしょうか。
無名クラスの場合は引数以外に定義された環境の情報にアクセスできるメリットと、
切り分けても命名に困る(〜ボタン押したときの処理、以上の名前が思いつかない)
ことが多数なので、私自身は無名クラスで書くことが多いです。
良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
0222デフォルトの名無しさん
2010/03/07(日) 00:10:01テラパッドなどのテキストエディタに[ctrl+v]でペーストした時に
日本語が文字化けしてしまいます。防ぐ方法はありますか。
【Java】 1.6.0_17-b04 (Sun Microsystems Inc.)
【OS】 Windows XP 5.1 (x86)
0223デフォルトの名無しさん
2010/03/07(日) 01:00:27文字コード総合スレ part5
http://pc12.2ch.net/test/read.cgi/tech/1153008301/
こんなエディタ・統合開発環境はいやだ 2種類目
0224222
2010/03/07(日) 01:10:430225216
2010/03/07(日) 03:16:14コンポーネントを作る際、例えば以下の様なものがあるとするじゃないですか。
1.btnS11 = new JButton("Save");
2.btnS11.setFont(new Font("Monospace",Font.BOLD,14));
3.btnS11.addActionListener(new ActionListener {public void actionPerformed(ActionEvent e) {Saveロジック(処理)}})
4.pnl1.add(btnS11);
ってな順になるのかと思いますが、それをコンポーネント分繰り返して
「1.生成2.属性設定3.ロジック4.貼付 1.生成2.属性設定3.ロジック4.貼付…」
みたいな感じで書いてます。
「1、2、4」は画面の見栄えの部分で、「3」はリスナーを追加する行為は画面の見栄え
リスナークラス内は「ロジック」になって、画面定義とロジックが混ざる感覚になる。
「リスナーを有名の他クラスにして、外に飛ばしてやれば、それが除外されるので画面定義だけの部分になってくれる。」
ので、しっくり感が出てます。
(なんか説明、へただなぁ…。)
0226216
2010/03/07(日) 03:44:09221さんが行っているメリットは、無名クラスではなく、内部クラスのメリットだと思います。
一応、外だしの有名クラスにするときも、元のクラスの内部クラスにはして、フィールドとか
までは、利用してます。
結局、無名クラスの場合のメリットとしては
「べつにクラス化しても、結局一ヶ所しかから呼ばれないから意味ない」
「そんなクラスにわざわざ名前つけるのもバカらしい」
「コード見るときに、あっち行ったりこっち行ったりするのも分かりにくい」
のでまとめて書く。ってことかなと思ってます。
(無名クラスの場合のメリットというよりか、外だしにしたクラスのデメリットですが…)
>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
命名規則を何となく決めて置けば、まぁ、なんとかしのげます。
MyBtnS11ActionAdapter 見たいなこのボタンのこのリスナーってなクラス名にしてます。
(よい名前かは置いといて…、ってか、BtnS11って、命名なんやねんってツッコミ入りそうですけど)
0227デフォルトの名無しさん
2010/03/07(日) 03:53:580228デフォルトの名無しさん
2010/03/07(日) 08:42:33ビジネスロジックは別クラスに実装して、
無名リスナーはUIとビジネスロジックのアダプタとして実装している。
こんな感じ。
JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
getSomeLogic().doLogic();
});
getHogeLogic()とdoLogic()の中身は想像で補ってくれ。
ビジネスロジックは、UIと粗結合であるべき、フレームワーク非依存であるべき、
というのが信条なので、SwingのAPIが混ざったクラスにビジネスロジックを書きたくない。
イベント処理にXXXListenerが必要というのはSwingの都合でしかないので、
そういう事情はSwingのUIクラスの中だけで隠蔽したい。
以上のような理由から、上記の作り方をしている。
次の課題として、UIオブジェクトとビジネスロジックオブジェクトのバインディングについて
考える必要があるけど、
そこは、ハードコーディングするなり、上位のオブジェクトからsetしてもらうなり、
DIコンテナでインジェクションするなり、好きな方法をどうぞ。
お薦めはDIコンテナだが、不慣れなら他の方法でもいい。
0229228
2010/03/07(日) 08:44:34JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
getSomeLogic().doLogic();
}
});
0230デフォルトの名無しさん
2010/03/07(日) 15:49:11書いててそう思ったんですが、まあ多分通じると思ってそのままに・・
コンポーネント名+イベント名 な命名しか思いつかない場合、
自分だったら無名内部クラスで片付けてますね。
でもまあその辺りは個人の感覚次第で
何が正しいってわけでもないはず。
(特この件にかんしては明確にどっちが優劣ってのはない。)
「そういう書き方もある」ことを抑えてて、
そういうコード見て面食らう事がないのであれば
別にどっちで書いてもいいと思うんですよ。
vi も Emacs も優れたエディタなんです。
0231216
2010/03/07(日) 18:05:59>>230
自分が無知なので広く意見を伺いたく質問したつもりなのに
変な噛みつき方してすみませんでした。
コメント有難うございました。
0232デフォルトの名無しさん
2010/03/07(日) 20:35:15>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
は、名前が思いつくようなクラスは再利用性があるクラスだから、
「名前が思いつくかどうか」自体が、内部クラスにするかどうかの
そこそこ良い基準になるということを言ったんだと思った。
ちょっと思っただけ。
0233デフォルトの名無しさん
2010/03/07(日) 21:44:270234デフォルトの名無しさん
2010/03/08(月) 08:32:25>>228でもいいんだけど、コンポーネントに直接ActionListenerをaddするんじゃなくて、
Action作って使いまわしたほうがマシだと思う。
ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。
0235デフォルトの名無しさん
2010/03/08(月) 23:48:19JAR ファイルの中見て無名内部クラス使いすぎ云々 (品質悪い) と因縁
付けて来た事があったなー。
0236デフォルトの名無しさん
2010/03/08(月) 23:52:360237デフォルトの名無しさん
2010/03/09(火) 00:04:28金が欲しいなら言う事聞くしかないだろ?
0238デフォルトの名無しさん
2010/03/09(火) 00:10:360239デフォルトの名無しさん
2010/03/09(火) 00:57:47さすがにそのくらいはやってんじゃなかろうか。
同じことを何度も書くのはそもそもアレだし。
0240デフォルトの名無しさん
2010/03/09(火) 15:05:420241デフォルトの名無しさん
2010/03/09(火) 16:43:510242デフォルトの名無しさん
2010/03/09(火) 17:46:22そうです。
エラーが発生してダイアログを出すときに、スタック情報を適当なpublic static にコピーしておいて、
ダイアログ表示中に隠し機能としてF5を押すと、
コピーしておいたスタック情報をクリップボードに張り付けるということがしたいです。
客から問い合わせがあったときに、簡単に対応したいので。
0243デフォルトの名無しさん
2010/03/09(火) 18:11:22JDialog dialog = new JDialog();
dialog.setModal(true);
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JPanel pn = (JPanel)dialog.getContentPane();
pn.getActionMap().put("hoge", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e);
}
});
pn.getInputMap().put(KeyStroke.getKeyStroke("F5"), "hoge");
dialog.setVisible(true);
0244デフォルトの名無しさん
2010/03/09(火) 19:35:53ありがとうございます。
JOptionPane.getRootFrame()から何とかしてアクションマップを登録して、
JOptionPane.showMessageDialog(…);することはできないでしょうか?
0245デフォルトの名無しさん
2010/03/09(火) 19:39:58JDialog 参照する方法が載ってるだろう。
0246デフォルトの名無しさん
2010/03/10(水) 15:44:20JOptionPane.getRootFrame()から何とかして、って書いてあるから答えがかみ合ってないよ。
そんなことは知ってるけどもっと簡単な方法がないかってことだろ。
XXして
JOptionPane.getRootFrame()
で済む方法ってことでしょう。
要はその方法はないってのが正しい返しかな。
0247デフォルトの名無しさん
2010/03/10(水) 18:55:30だから JDialog 参照しろという話をしてるわけだが。
0248デフォルトの名無しさん
2010/03/11(木) 09:06:33Toolkitを使って全てのイベントを監視する方法もある。
どのコンポーネントがフォーカスを持っていようと
F5が押されたらスタックトレースをダンプするようにもできると思う。
0249デフォルトの名無しさん
2010/03/11(木) 11:01:19ちなみに、スクロールで見えてない部分も含め印刷させることが出来るでしょうか?
WORDの差し込み印刷をSwingでやることになりまして…
0250デフォルトの名無しさん
2010/03/11(木) 13:18:00vbaをjavaから呼ぶcom作る輪
0251デフォルトの名無しさん
2010/03/11(木) 14:29:22Apache POI だけはいつも俺の心のアニキ。
0252デフォルトの名無しさん
2010/03/11(木) 16:34:540253デフォルトの名無しさん
2010/03/11(木) 17:17:17まずは簡単なWORD文書をディスプレイに描画させてみて、満足いく結果が得られるのか早期に検討すべし。
たぶん Aspose.Words for Java みたいな有料ライブラリが必要になるだろうよ。
>252
XMLなんか差し込み印刷したってしょうがないだろ
0254デフォルトの名無しさん
2010/03/11(木) 17:25:41Word XML (WordML) 形式の話をしてるんだが、まだ Office が XML で連携できてるって
気付いてない奴って多いんだよな。おまえみたいな。
0255デフォルトの名無しさん
2010/03/11(木) 17:43:50(レイアウト変更等別料金)、検索結果の XML から XSL で Word ファイル作る
ツール作って XSL の書き方だけ教えてあげたらもの凄く喜ばれた。
んで別のデカい仕事貰った。
0256デフォルトの名無しさん
2010/03/11(木) 17:53:46「Word XML (WordML) 形式の話をしてる」
「WORDの差し込み印刷をSwingでやる」の話じゃなかったんならオレが謝る。
0257デフォルトの名無しさん
2010/03/11(木) 17:54:120258デフォルトの名無しさん
2010/03/11(木) 17:57:02Swing から Word XML 出力 & Desktop#print() が思い付かない時点でオ�hル
■ このスレッドは過去ログ倉庫に格納されています