當前位置:首頁 » 編程語言 » 計時器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定時在此

}

}

}

熱點內容
oracle二進制存儲 發布:2025-01-29 13:44:47 瀏覽:575
浙江常規存儲設備特價 發布:2025-01-29 13:44:43 瀏覽:675
恩格爾演算法 發布:2025-01-29 13:44:41 瀏覽:713
怎麼查看我的車是什麼配置 發布:2025-01-29 13:38:20 瀏覽:78
間片輪轉演算法 發布:2025-01-29 13:38:19 瀏覽:438
PID演算法包 發布:2025-01-29 13:36:52 瀏覽:197
安卓加速器app哪個好 發布:2025-01-29 13:36:49 瀏覽:155
如何有專有的伺服器 發布:2025-01-29 13:36:14 瀏覽:921
android前台activity 發布:2025-01-29 13:31:24 瀏覽:870
安卓怎麼配置mitm 發布:2025-01-29 13:10:55 瀏覽:821