Java標準低速GUI 6 AWT/Swing
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/09/26(水) 20:51:18しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
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
0783デフォルトの名無しさん
2007/12/27(木) 08:37:43後は変数のスコープの問題。
ローカル変数timerをクラスAのインスタンス変数にして、
こんなメソッドを作って
public void stopTimer(){
timer.stop();
}
これをactionPerformed()内の適切な位置で呼べばいい。
ところでこのサンプルコード、Timerでやってる処理がi++だけなんだが、
これは単純化したサンプルコードなだけだよね?
ホントのコードでは、ちゃんとGUIスレッドですべき処理をしてるんだよね?
0784デフォルトの名無しさん
2007/12/27(木) 08:53:05GUIスレッドですべき処理というのがいまいちわかんないんですが、
ある条件でaのエフェクトを起こすみたいな感じなんですよ
とにかくこれで寝れます どうもありがとうございました
0785デフォルトの名無しさん
2007/12/27(木) 10:45:150786デフォルトの名無しさん
2007/12/27(木) 12:26:40swing.TimerはEDTでactionPerformed呼ぶからそのへんは大丈夫と思
0787デフォルトの名無しさん
2007/12/27(木) 13:29:19Java2Dだとαブレンディング/テストとか足りないものが多いから
2DであってもOpenGL使わざるを得ないのが現実
>>785が正解
あと注意すべきところはSwingTimerは定期処理にはいいけど、
長時間の流れがある処理には向かないというのもおぼえておくとよろし
あくまでも一定時間ごとにアクションイベントを発生させるだけ
詳しく見てないけどSwingFrameworkでjavax.swing.Timerも扱えるんかな?
0788デフォルトの名無しさん
2007/12/27(木) 22:23:18・JMFだとMacで再生出来ない。
・QuickTime for JavaだとLinuxで再生出来ない。
という認識はあっていますでしょうか?
0789デフォルトの名無しさん
2007/12/27(木) 22:41:37というかこれくらい人に聞かずとも分かるだろ。
0790デフォルトの名無しさん
2007/12/28(金) 00:08:21ttp://www.animoids.com/jmf_for_mac.html
「JMF_2_1_1_mac.zip」の部分から、
もしかしてMac用がどこかで配布されているのかと勘違いしてしまいました。
0791デフォルトの名無しさん
2007/12/28(金) 03:27:55JMFはjava動かすスペックと動画デコードするスペックを
ダブルで要求するからネイティブ版でもいろいろすると重いぞ。
単純なラッパーだからwin版はバグだらけだし。
0792デフォルトの名無しさん
2007/12/28(金) 08:46:22こんなの見つけたぞ
ttp://www.sra.co.jp/people/nisinaka/Jun4Java/index_ja.html
0793デフォルトの名無しさん
2007/12/28(金) 15:55:29なんでどこも投資して開発を続けないんだろう
0794デフォルトの名無しさん
2007/12/28(金) 16:06:510795デフォルトの名無しさん
2007/12/30(日) 16:40:200796デフォルトの名無しさん
2007/12/30(日) 16:55:090797デフォルトの名無しさん
2007/12/30(日) 16:57:490798デフォルトの名無しさん
2007/12/30(日) 17:14:410799デフォルトの名無しさん
2007/12/31(月) 00:16:16結局今はEclipseにもどりますた。
SwingアプリがSWTアプリみたいに比較的ストレスなく動いてくれる日はマダ来ないのかね。
0800デフォルトの名無しさん
2007/12/31(月) 00:25:30>>799の気分次第で明日にでも来るし、永遠に来ない事もありうる
0801デフォルトの名無しさん
2007/12/31(月) 00:57:01マシンのスペックはいかほどで?
0802デフォルトの名無しさん
2007/12/31(月) 00:58:07マイナーGPUにも冷たいのかもしれんね
0803デフォルトの名無しさん
2007/12/31(月) 01:02:440804デフォルトの名無しさん
2007/12/31(月) 01:16:32Java使ってるSWTもマイナーCPUやマイナーGPUに冷たいって事に?
0805デフォルトの名無しさん
2007/12/31(月) 01:17:10SPARCにも冷たいって事に?
0806デフォルトの名無しさん
2007/12/31(月) 01:20:050807デフォルトの名無しさん
2007/12/31(月) 01:42:320808デフォルトの名無しさん
2007/12/31(月) 14:16:140809デフォルトの名無しさん
2007/12/31(月) 15:29:100810デフォルトの名無しさん
2007/12/31(月) 15:33:56例えば、JTreeでCtrl+Fで検索のアクションをさせたい場合などです。
0811デフォルトの名無しさん
2007/12/31(月) 17:44:54適当なコンポーネントの ActionMap と InputMap に登録すればいいだろ。
0812デフォルトの名無しさん
2007/12/31(月) 18:07:490813デフォルトの名無しさん
2007/12/31(月) 18:15:440814>>810
2007/12/31(月) 18:36:09こんな簡単に実現できるなんてSwingは本当にすごいですね。
ありがとうございました。
0815デフォルトの名無しさん
2008/01/01(火) 02:16:39いつものネガティブキャンペーン乙
6.0だとEclipseのほうが軽いとかってありえんだろ
SWTはスレ違いだからそっちでやってくれ
0816デフォルトの名無しさん
2008/01/01(火) 02:28:130817デフォルトの名無しさん
2008/01/01(火) 08:17:290818デフォルトの名無しさん
2008/01/02(水) 02:11:590819デフォルトの名無しさん
2008/01/02(水) 02:17:51sysdeo の Tomcat プラグインと JSP, XML の構造化エディタ程度ならめちゃめちゃ軽い。
必要なものを選択できる人間だけが楽できる。
0820デフォルトの名無しさん
2008/01/02(水) 03:15:40インストールしてもプラグイン無効にすればいいんじゃね?
0821デフォルトの名無しさん
2008/01/02(水) 22:26:40CTRL+X -> CTRL+V で「切り取り -> 貼り付け」した時に、
貼り付け後に、余計なオブジェクトを削除するための後処理はexportDoneでいいんだろうか?
なぜか、CTRL+Xを押した瞬間に、exportDoneが実行されちゃうんだ。
exportDoneの説明には、
>データのエクスポート後に呼び出されます。このメソッドは、アクションが MOVE の場合に転送されたデータを削除します。
>MOVE はこの実装にサポートされるアクションでないため、このメソッドの実装では何も行われません。getSourceActions には MOVE が含まれません。
どっちやねんw
0822821
2008/01/02(水) 22:28:33importDoneの中で、貼り付け操作完了後に、
自分で削除操作を実行しようかなと思ってる。
0823821
2008/01/03(木) 00:34:28切り取りの標準的な操作は、切り取りと同時に削除だろうが!
エクスプローラの動作が特殊なんだ!
新年早々はずかしぃぃぃぃぃぃぃぃぃぃぃぃ!!!!!!!!!!
0824デフォルトの名無しさん
2008/01/03(木) 03:16:520825デフォルトの名無しさん
2008/01/05(土) 20:53:44終了はめっちゃ速いのだが。
0826デフォルトの名無しさん
2008/01/06(日) 23:23:28import java.awt.Frame;
これってバグなの?
0827デフォルトの名無しさん
2008/01/06(日) 23:33:55/ ―\ ┏┛
/ノ (●)\ ・
. | (●) ⌒)\
. | (__ノ ̄ |
\ /
\ _ノ
/´ `\
| |
| |
___ ━┓
/ ― \ ┏┛
/ (●) \ヽ ・
/ (⌒ (●) /
/  ̄ヽ__) /
. /´ ___/
| \
| |
0828デフォルトの名無しさん
2008/01/06(日) 23:49:08分かる人にはこれだけで分かる
0829デフォルトの名無しさん
2008/01/06(日) 23:53:32>>828
バグってたのは俺のほうだったw
*.class 削除したらコンパイル通ったよww
0830デフォルトの名無しさん
2008/01/07(月) 00:55:290831デフォルトの名無しさん
2008/01/07(月) 01:26:16http://pc11.2ch.net/test/read.cgi/tech/1197710566/646
だろう。
0832デフォルトの名無しさん
2008/01/07(月) 11:20:260833デフォルトの名無しさん
2008/01/07(月) 12:55:58よくみつけてきたな
0834デフォルトの名無しさん
2008/01/09(水) 03:57:380835デフォルトの名無しさん
2008/01/09(水) 17:58:19import javax.swing.*;
public class NewJFrame2 extends javax.swing.JFrame {
List<String> dummyList = new ArrayList<String>();
JList jList;
public NewJFrame2() {
setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE);
JScrollPane jScrollPane = new JScrollPane();
jList = new JList();
jScrollPane.setViewportView(jList);
getContentPane().add(jScrollPane, java.awt.BorderLayout.CENTER);
for ( int i=0; i<300; i++ ) {
StringBuilder sb = new StringBuilder();
int max = (int)(Math.random() * 100 + 1);
//int max = 20;
for ( int j=0; j<max; j++ ) sb.append("A");
dummyList.add(sb.toString() + " " + i);
}
jList.setModel(new AbstractListModel() {
public int getSize() { return dummyList.size(); }
public Object getElementAt(int index) {
return dummyList.get(index);
}
});
pack();
}
public static void main(String args[]) {
new NewJFrame2().setVisible(true);
}
}
0836デフォルトの名無しさん
2008/01/09(水) 18:01:42>>835のプログラムなんだけど、単純にJListの中に300個のダミーデータを入れている。
カーソルキーで下にスクロールしていき、数十行進んだら、こんどは上に10行くらい
スクロール。
そしたらまたカーソルキーで下に移動。
すると、選択されてる項目が一瞬で画面の下までジャンプしてしまう。
このプログラムで、maxを20とか一定の値にした場合はジャンプしない。
JListの各セルの文字列長をランダムに変えたものを入れるとこの現象が起きる。
こういう仕様なのかもしれないけど、一瞬で選択位置が飛ぶと、
目線がそれてしまうので操作感がよくない。
maxを固定したときのように動作してほしい。
なんとかする方法ないかなぁ?
0837デフォルトの名無しさん
2008/01/09(水) 19:57:24解決法でないのだが、「ジャンプ」の条件について。
固定長かどうかではなく、Viewport の外に描画域があるかないか、ではないのか、と。
固定長で横スクロールが出るようにしたときは「ジャンプ」するし、
固定長でなくても、横スクロールが出ないときは「ジャンプ」しない。
JScrollPane で横スクロールを非表示にしても、見えない部分があるときは「ジャンプ」する。
0838デフォルトの名無しさん
2008/01/10(木) 16:05:46しかしちょっと設定をいじくったぐらいでは解決しそうない。
オーバーライドして一部の機能を殺すとか。
0839デフォルトの名無しさん
2008/01/10(木) 18:27:36http://bugs.sun.com/view_bug.do?bug_id=6568906
http://bugs.sun.com/view_bug.do?bug_id=6510999
0840デフォルトの名無しさん
2008/01/10(木) 18:57:440841デフォルトの名無しさん
2008/01/10(木) 19:27:170842デフォルトの名無しさん
2008/01/10(木) 21:33:46JListに512個要素突っ込むとバグるとか放置されてるし。
0843デフォルトの名無しさん
2008/01/10(木) 22:03:232000個いれてみたけど、なにかバグあんの?
0844デフォルトの名無しさん
2008/01/10(木) 22:52:30これで、すべてのアイテムが2個ずつになって1024個になるというステキなバグ
0845デフォルトの名無しさん
2008/01/10(木) 23:06:27末尾に並ぶ0の個数を求めるのをJavaでおながいします
0846デフォルトの名無しさん
2008/01/10(木) 23:10:360847デフォルトの名無しさん
2008/01/10(木) 23:16:39バグが出なかったんだけど
他になんか条件ないの?
0848デフォルトの名無しさん
2008/01/10(木) 23:17:55class Test{
static void main () {
cnt5 = 0;
for (int i = 1;i <= 10000; i++)
if(i % 5 == 0)
cnt5++;
System.out.println("count" + cnt5);
}
}
0849デフォルトの名無しさん
2008/01/10(木) 23:22:250850デフォルトの名無しさん
2008/01/10(木) 23:48:270851デフォルトの名無しさん
2008/01/10(木) 23:51:270852デフォルトの名無しさん
2008/01/11(金) 00:07:08i%25 とか i%125 も数えなきゃだめじゃね?
0853デフォルトの名無しさん
2008/01/11(金) 00:07:360854デフォルトの名無しさん
2008/01/11(金) 00:15:22つ ttp://deztec.jp/x/05/faireal/faireal-26-index.html
0855デフォルトの名無しさん
2008/01/11(金) 00:19:54実用に問題ないレベルならシンプル記述に徹するのも美学。
0856デフォルトの名無しさん
2008/01/11(金) 00:48:090857848
2008/01/11(金) 01:29:37class Test{
static void main () {
int cnt5 = 0, n;
for (int i = 5;i <= 10000; i += 5) {
n = i;
while (n % 5 == 0) {
cnt5++;
n /= 5;
}
}
System.out.println("count" + cnt5);
}
}
0858デフォルトの名無しさん
2008/01/11(金) 01:39:180859デフォルトの名無しさん
2008/01/11(金) 01:57:27>>有名なバグだぞ。
にしては、バグ登録日があまり昔ではないが?
>>842
>>844
そんなバグはありえない。
まず、JList、JListのsuperクラスにCTRL+Bなんてデフォルトのキーバインドはない。
さらに、ListModelへ項目の追加、削除が可能であることを
JListは知りようがないから、JListがListModelに項目を追加することはできない。
(ComboBoxModelのMutableComboBoxみたいなインタフェイスはない。)
そもそも、登録もされていないキーバインドが実行されるなら、
JListでなく、JComponentのバグだし。
JListがListModelに項目を追加する唯一の方法は、
ListModelをDefaultListModelへダウンキャストすることだけど、
Swingのソースコードにダウンキャストするような箇所はない。
さて、どうやったら、ソースに書かれていないことを
JListが実行するのだろう?
0860デフォルトの名無しさん
2008/01/11(金) 03:06:000861デフォルトの名無しさん
2008/01/11(金) 03:13:52断言できないんだけどな。実行時のリスナやら集約の親子まで調べてやらないと。
0862デフォルトの名無しさん
2008/01/11(金) 03:22:05JLabel クラスが無罪であることを得々と説いてもあんまし意味なくね? という話 (実装者乙、でなければ)。
0863デフォルトの名無しさん
2008/01/17(木) 15:17:13XSL で処理できるからデータを利用しやすいんじゃがのう。
0864デフォルトの名無しさん
2008/01/17(木) 18:20:010865デフォルトの名無しさん
2008/01/17(木) 18:50:170866デフォルトの名無しさん
2008/01/17(木) 19:01:08ブラウザを使うのがPCだけしかない考えてるなら、考え直した方がいい。
0867デフォルトの名無しさん
2008/01/17(木) 19:04:520868デフォルトの名無しさん
2008/01/17(木) 19:21:49一緒にしてるしwwwアホか?
0869デフォルトの名無しさん
2008/01/17(木) 19:27:010870デフォルトの名無しさん
2008/01/17(木) 19:30:49むしろあの HTMLEditorKit 系をおまいがどこで活用できてるのか知りたい。
0871デフォルトの名無しさん
2008/01/17(木) 19:31:390872デフォルトの名無しさん
2008/01/17(木) 19:42:23JDICだとXSS対策が必要だろうけど、こっちは不要。
0873デフォルトの名無しさん
2008/01/17(木) 19:56:220874デフォルトの名無しさん
2008/01/17(木) 20:06:380875デフォルトの名無しさん
2008/01/17(木) 20:09:36Rhinoにその手のインタフェースを与えなきゃいいだけだ。
0876デフォルトの名無しさん
2008/01/17(木) 20:22:150877デフォルトの名無しさん
2008/01/17(木) 20:25:260878デフォルトの名無しさん
2008/01/17(木) 20:30:43できるんでしょ?」 と言い出す事もあるが、あれを見せるとさすがに黙る。
0879デフォルトの名無しさん
2008/01/17(木) 20:34:02でも日本語とかIMEのこととか考えてないよな、あのHTMLEditorKitは。表示だけならいいけど。
0881デフォルトの名無しさん
2008/01/17(木) 20:46:380882デフォルトの名無しさん
2008/01/17(木) 23:57:24絶好の材料だと思うんだけどなあ<ブラウザ
■ このスレッドは過去ログ倉庫に格納されています