當前位置:首頁 » 編程語言 » 計時器java

計時器java

發布時間: 2023-11-17 14:17:56

⑴ 用java編寫一個計數器或計時器

importjava.awt.BorderLayout;
importjava.awt.Container;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;

importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JTextField;

{

=201306211111L;
privateJTextFieldscreen=newJTextField("0");
privateJButtonstart=newJButton("開始");
privateJButtonreset=newJButton("重置");
privateJPanelpanel=newJPanel();
privatebooleanisRunning;
privateinttime;
privateinttimeBetween;

publicTimerDemo(inttimeBetween){
super("計時器");
this.timeBetween=timeBetween;
try{
init();
}catch(Exceptione){
e.printStackTrace();
}
}

publicTimerDemo(){
super("計時器");
this.timeBetween=100;
try{
init();
}catch(Exceptione){
e.printStackTrace();
}
}

privatevoidinit(){

panel.setLayout(newGridLayout());
panel.add(start);
panel.add(reset);
start.addActionListener(this);
reset.addActionListener(this);
screen.setFont(newFont("幼圓",Font.BOLD,60));
screen.setHorizontalAlignment(JTextField.CENTER);
screen.setEditable(false);

Containerc=getContentPane();
c.setLayout(newBorderLayout());
c.add(panel,BorderLayout.SOUTH);
c.add(screen,BorderLayout.CENTER);

this.setSize(200,150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
}

publicstaticvoidmain(String[]args){
newTimerDemo(1);//設定1ms/次
//newTimerDemo();
}

@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==start){
if(start.getText().equals("開始")){
start.setText("暫停");
isRunning=true;
}elseif(start.getText().equals("暫停")){
start.setText("開始");
isRunning=false;
}

}
if(e.getSource()==reset){
start.setText("開始");
screen.setText("0");
isRunning=false;
time=0;
}
newThread(newTimeZone()).start();
}

{

@Override
publicvoidrun(){
while(isRunning){
time++;
if(time>=Integer.MAX_VALUE){
screen.setText("ERROR");
JOptionPane.showMessageDialog(null,"ERROR");
isRunning=false;
}
screen.setText(String.valueOf(time));
try{
Thread.sleep(timeBetween);
}catch(Exceptione){
e.printStackTrace();
}
}
}

}

}

⑵ java 中timer類的用法是什麼

現在項目中用到需要定時去檢查文件是否更新的功能。timer正好用於此處。
用法很簡單,new一個timer,然後寫一個timertask的子類即可。
package comz.autoupdatefile;

import java.util.Timer;
import java.util.TimerTask;

public class M {
public static void main(String[] args) {
// TODO todo.generated by zoer
Timer timer = new Timer();
timer.schele(new MyTask(), 1000, 2000);
}
}

class MyTask extends TimerTask {

@Override
public void run() {
System.out.println("dddd");

}

}
這樣,就可以在1秒鍾之後開始執行mytask,每兩秒鍾執行一次。
當然,timer的功能也可以通過自己構造線程,然後在線程中用sleep來模擬停止一段時間,然後再執行某個動作。
其實,看一下timertask的源碼就立即可以知道,timertask就是實現了runnable介面的。也就是說,通過timer來間隔一段時間執行一個操作,也是通過一個線程來做到的。

⑶ 如何用java實現一個計時器

用java實現一個計時器的方法:

public class TestDingShi implements Runnable

{

Thread xc;

Dao =new DaoImpl();

public TestDingShi()

{

xc=new Thread(this);//線程開啟

xc.start();

}

public void run()

{

while (true)

{

try

{

xc.sleep(1000);//睡眠開始計時

}

catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

//TODO定時在此

}

}

}

熱點內容
刷閱讀腳本 發布:2025-03-04 08:24:55 瀏覽:230
c語言winsock 發布:2025-03-04 08:22:57 瀏覽:104
PH的編程 發布:2025-03-04 08:22:21 瀏覽:270
linux上拉取ftp上的文件 發布:2025-03-04 08:09:26 瀏覽:414
戴爾r系列伺服器怎麼用 發布:2025-03-04 08:04:41 瀏覽:769
查找伺服器上ip 發布:2025-03-04 08:04:27 瀏覽:917
自動超級腳本 發布:2025-03-04 08:02:55 瀏覽:773
大數據應用技術需要什麼電腦配置 發布:2025-03-04 07:56:33 瀏覽:54
群九軸演算法 發布:2025-03-04 07:45:13 瀏覽:170
c語言企業面試題目 發布:2025-03-04 07:45:03 瀏覽:410