アプリ版:「スタンプのみでお礼する」機能のリリースについて

こういう場合、どうすればいいでしょうか。

テキストフィールドになにか文字を入力して、
3秒後に自動的にその文字を消すということをやりたい
のですが、Timerをどう使えばいいでしょうか?

よろしくお願い致します。

A 回答 (3件)

あ、やっぱりそうでしたか。



入力からタイマー起動までの仕組みの流れが知りたいのかと
勘違いしました。(^^;



//******************************
//タイマーの起動の部分
//******************************
public void actionPerformed(ActionEvent ae){

 //タイマーオブジェクト生成
 Timer timer = new Timer();
 //起動までの時間
 long delayTime = 3000; //3000ms(3秒)
 //タスクオブジェクト生成
 MyTask task = new MyTask(timer, textField);
 //タイマーの開始
 timer.schedule(task, delayTime);

}


//******************************
//タスク
//******************************
class MyTask extends TimerTask
{
 TextField textField;
 Timer timer;

 public MyTask(Timer tm, TextField tx){
  textField = tx;
  timer = tm;
 }

 /** 時間が来ると、このメソッドが呼び出される
  */
 public void run(){
  textField.setText("");
  textField.setEnabled(true);

  //キャンセルしておかないと、いつまでも残っているみたいです
  timer.cancel();
 }

}


おおまかには、これでいいはずです。
解説が必要なら、言ってください。
    • good
    • 0
この回答へのお礼

とても参考になりました!!

ありがとうございます!

お礼日時:2003/06/19 00:06

>文字列(名前とか)を入力し終わった時点から3秒後です。



それだと、「入力が終わった」という合図をプログラムに教えてあげないとダメですね。
何文字入力されるかプログラムにはわからないから。

入力が終わったことを知らせるボタンが必要で、
そのボタンのアクションリスナー内でタイマーを起動すればいいと思います。同時にテキストフィールドは使用不可にしておいた方がいいでしょう。



と、ここまで書いて気がついたのですが、もしかしたら
単純にタイマーの使い方の質問ですか?
    • good
    • 0
この回答へのお礼

すみません、タイマーの使い方が知りたいんです。

よろしくお願いします。

お礼日時:2003/06/12 17:10

どの時点から3秒後なのでしょうか?



・1文字で入力したらそこから3秒後?
・文字列(名前とか)を入力し終わった時点から3秒後?

それによって、変わってきます。
はっきりさせておいた方がいいでしょう。

この回答への補足

すみません・・。

文字列(名前とか)を入力し終わった時点から3秒後です。

よろしくお願いします。

補足日時:2003/06/12 15:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!