くだすれJava(超初心者用)

このエントリーをはてなブックマークに追加
977デフォルトの名無しさん
swingを色々弄っています。
例えばボタンを押した時にカウントダウンを始める、等のように、
少しアニメーションっぽく表示させたいのですが、
途中結果が表示されずに結果のみ表示されてしまうのはどうしてでしょうか?

class Action implements ActionListener {
 public void actionPerformed(ActionEvent event) {
  testBtn.setEnabled(false);
  for (int i = 5; i >= 0; i--) {
   testLabel.setText(i + "秒");
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e ) {
    
   }
  }
  testBtn.setEnabled(true);
}
978デフォルトの名無しさん:2007/01/09(火) 20:52:34
>>977
setEnabled を抜かしたらどうなる?
979デフォルトの名無しさん:2007/01/09(火) 22:46:59
>>977
Swing はシングルスレッドで実装されてて、
イベントディスパッチスレッドってところでイベント処理してる。
その Action をボタンに addActionListener すると
actionPerformed() の処理が終わるまで描画がブロックされて、
5秒過ぎてから今までブロックされてた描画イベント
(0秒、1秒・・・4秒と表示する)がまとめて起きる。

for (int i = 5; i >= 0; i--) {
 new Runnable(){
  public void run(){
   // i秒待つ処理。
   // Action があるスレッドとは別スレッドで動くので Action をブロックしない。

   SwingUtilities.invokeLater(new Runnable(){
    public void run(){
     // ラベルを "i秒" にする処理
    }
   });
  }
 }.start();
}

動くかどうか試してないけど、こんな感じに書くことになるはず。
イベントディスパッチスレッドやSwingUtilitiesでググると
詳しい解説とか拾えると思われ。
980デフォルトの名無しさん:2007/01/10(水) 07:17:23
>>978
結果は同じでした。setEnabled自体も反映されていませんでした。
>>979
参考に書き直したところ、無事にカウントダウンさせることができました。
今後イベントディスパッチスレッドについて勉強します、
ありがとうございました。
981デフォルトの名無しさん:2007/01/10(水) 22:31:13
Javaスタートブック高田美樹著だとCLASSPATHを設定しろなんて書いてないぞ!

おい、実行できね〜よ〜、糞サンマイクロ!!!!!!!!!!!!!!

てめ〜らインケンやろう〜実行できるファイル送れ〜
ホームページをいちいち変えるなよ馬鹿やろう。ホームページのアドレス
変えやがって、ず〜と同じでいいだろこのやろう
982デフォルトの名無しさん:2007/01/10(水) 22:36:16
次の質問はまだですか?
983デフォルトの名無しさん:2007/01/11(木) 04:06:28
環境変数としてCLASSPATHなんて設定していないんですが、
なぜかコンパイルも実行もできてしまいます。
はやりのノロウイルスにでも感染しているのでしょうか?
984デフォルトの名無しさん:2007/01/11(木) 09:22:04
日本脳炎です
985デフォルトの名無しさん:2007/01/11(木) 11:46:21
>>983
環境変数 PATH に指定されてるどこかに
javac.exe や java.exe が居て、
それらが自身の実行環境がどこにあるか知っている
(javac や java の内部で CLASSPATH とかを設定してるイメージ)
ので実行できる。

>ノロウィルス
あんまり面白くもないな
986デフォルトの名無しさん:2007/01/13(土) 00:56:31
隣に座っているPGが、テストデータの名前欄に「のさく」、「みゆきち」、「ほちゃ」と入れてます。
何かの暗号なのでしょうか?
987デフォルトの名無しさん:2007/01/13(土) 01:47:50
行く道には野花が咲いています。
この風景の中で飲むお茶はさぞおいしい事でしょう。
988デフォルトの名無しさん:2007/01/13(土) 02:04:26
>>986
野川さくら、沢城みゆき、堀江由衣
その隣の住人は野川さくらのアンチだな
989デフォルトの名無しさん:2007/01/15(月) 10:26:18
誰?
990デフォルトの名無しさん:2007/01/15(月) 13:11:13
>>989
声優
991デフォルトの名無しさん:2007/01/17(水) 04:06:47
w
992デフォルトの名無しさん:2007/01/18(木) 07:09:40
ww
993デフォルトの名無しさん:2007/01/19(金) 08:05:58
www
994デフォルトの名無しさん:2007/01/19(金) 16:59:21
break;
995デフォルトの名無しさん:2007/01/19(金) 21:54:05
goto >>986
996デフォルトの名無しさん:2007/01/20(土) 00:48:37
System.exit(1);
997デフォルトの名無しさん:2007/01/20(土) 10:45:55
break;
998デフォルトの名無しさん:2007/01/20(土) 13:28:28
for (; res<=1000; res++) {
999デフォルトの名無しさん:2007/01/20(土) 14:36:56
さて、次スレだが。
1000ゲッターの人、次スレ立て&誘導よろしく。
1000デフォルトの名無しさん:2007/01/20(土) 14:42:25
【初心者】Java質問・相談スレッド96【大歓迎】
http://pc10.2ch.net/test/read.cgi/tech/1168678303/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。