実験14

パッケージshiyan14。

輸入java.awt.event.ActionEvent。
輸入java.awt.event.ActionListener。
輸入java.awt.event.KeyEventの。
輸入java.awt.event.KeyListenerの。
輸入java.util.Timer;
輸入java.util.TimerTask。

輸入javax.swing.JButtonの。
輸入javax.swing.JFrame;
輸入javax.swing.JLabel。
輸入javax.swing.JTextField。

JFrameのクラスShiYan14 {公共延び
/ **
*
* /
;プライベートロング静的最終のserialVersionUID = 1L
//定義コンポーネント
プライベートlblTime JLabelの、
プライベートtxtInput JTextFieldの、
専用のJButton btnEnter;
コンストラクタ//
パブリックShiYan14(){
//フォームを設定します関連する属性
のスーパー( "ShiYan14");
this.setSize(300、200);
this.setLayout(NULL);
this.setLocation(100,50);
//コンポーネントの作成
this.lblTime =新しいJLabelの( "カウントダウン時間を入力します。" );
this.lblTime.setBounds(30,20,200,30);
this.txtInput新しい新しい= JTextFieldが();
this.txtInput.setBounds(30,70,100,30);
this.btnEnter JButtonの新しい新=( "OK");
この.btnEnter.setBounds(150,70,70,30)。
JTextFieldがリスナー登録する//
this.txtInput.addKeyListenerを(のKeyListener新しい新しい(){
公共ボイドkeyPressed(のKeyEvent KE){}
公共ボイドkeyReleased(たKeyEvent KE){}
公共ボイドkeyTypedに(たKeyEvent KE){
// tInput_KeyTyped(KE)。
}
});
//のJButtonは、リスナー登録する
this.btnEnter.addActionListenerを(のActionListener新しい新しい(){
公共ボイドのactionPerformed(のActionEvent AE){
btnEnter_ActionPerformed(AE);
}
});
//形成する成分を添加する
追加( lblTime)、
追加(txtInput)、
追加(btnEnter);
//フォーム表示
trueにthis.setVisibleを();
}
入力のイベント//処理は、ユーザは、入力されたデジタル制御することができ
ます。public void txtInput_KeyTyped(たKeyEventのKE)を{
(「9' ke.getKeyChar()< '0' || ke.getKeyChar()>){IF
; ke.setKeyChar( '\ 0')
}
}
ボタンイベントをクリック//処理
公共ボイドbtnEnter_ActionPerformed(のActionEvent AE ){
//カウントダウン時間のユーザ入力を取得
文字列をstrTime = this.txtInput.getText();
IF(strTime.equals( "")){
//ユーザーの入力かどうかを検出
this.lblTime.setText(「あなたは、してください入力されていません入力「);!
}
他の{
整数時間はInteger.parseInt(strTimeを=);
//スレッドを作成するには
、新しい新しいTT = TimeThread(this.lblTime、時間)TimeThread
tt.startを();
//タイマー作成
タイマタイマ新しい新しい=タイマ();
timer.schedule(TimerTaskを新新(){
別のプログラムを起動し//
ます。public void RUN(){
System.out.print(の"OK");
}
}、*時刻1000);
}
}
フォームを起動//
のpublic static無効メイン(文字列[] args){
新しい新しいShiYan14を();
}
}
//時間Threadクラスの
クラススレッド{拡張TimeThread
プライベートlblTimeのJLabel;
プライベートint型の時間を。
//コンストラクタは、時間のJLabelの表示、カウントダウンイベントに渡されました。
TimeThreadパブリック(JLabelのlblTime、INT時間){
this.lblTime = lblTime;
this.time =時間;
}
// runメソッド
公共ボイドRUN(){
ながら(時間> 0){
//残り時間表示
this.lblTimeを。 setText( "時間は左:" +時間+ "S");
還元残り//時間
時間- ;
試み{
のThread.sleep(1000);
}キャッチ(InterruptedExceptionあるE){
e.printStackTrace();
}
}
}
}

 

結果:

 

 

 

 

おすすめ

転載: www.cnblogs.com/1998bmx/p/11110471.html