45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:实现秒表的功能的方法

实现秒表的功能的方法

2016-09-03 12:44:52 来源:www.45fan.com 【

实现秒表的功能的方法

怎么实现秒表的功能??有个按钮,一按开始计时,再按停止。

public class StopWatch extends javax.swing.JFrame {

private TimerThread timer = null;

/** Creates new form StopWatch */

public StopWatch() {

initComponents();

timer = new TimerThread();

}

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

private void initComponents() {

txcounter = new javax.swing.JTextField();

btstart = new javax.swing.JButton();

btreset = new javax.swing.JButton();

jLabel1 = new javax.swing.JLabel();

btmark = new javax.swing.JToggleButton();

jScrollPane1 = new javax.swing.JScrollPane();

tarea = new javax.swing.JTextArea();

getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

addWindowListener(new java.awt.event.WindowAdapter() {

public void windowClosing(java.awt.event.WindowEvent evt) {

exitForm(evt);

}

});

getContentPane().add(txcounter, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 40, 120, 30));

btstart.setText("/u542f/u52a8");

btstart.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btstartActionPerformed(evt);

}

});

getContentPane().add(btstart, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 40, -1, -1));

btreset.setText("/u91cd/u7f6e");

btreset.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btresetActionPerformed(evt);

}

});

getContentPane().add(btreset, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 40, 60, -1));

jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));

jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel1.setText("/u8ba1/u65f6/u5668");

jLabel1.setToolTipText("null");

getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 40, 50, 30));

btmark.setText("/u8ba1/u65f6");

btmark.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btmarkActionPerformed(evt);

}

});

getContentPane().add(btmark, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 40, 60, -1));

jScrollPane1.setViewportView(tarea);

getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 80, 360, 150));

pack();

}

private void btresetActionPerformed(java.awt.event.ActionEvent evt) {

// Add your handling code here:

tarea.setText("");

timer.reset();

}

private void btmarkActionPerformed(java.awt.event.ActionEvent evt) {

// Add your handling code here:

timer.mark = true;

}

private void btstartActionPerformed(java.awt.event.ActionEvent evt) {

// Add your handling code here:

if(btstart.getLabel().equalsIgnoreCase("启动"))

{

btstart.setLabel("停止");

if(timer.stop)

timer.stop = false;

else

timer.start();

}

else

{

btstart.setLabel("启动");

timer.stopCounter();

}

}

/** Exit the Application */

private void exitForm(java.awt.event.WindowEvent evt) {

System.exit(0);

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

StopWatch watch = new StopWatch();

watch.setSize(400,300);

watch.show();

}

class TimerThread extends Thread

{

boolean active = false;

boolean stop = false;

boolean mark = false;

private int counter = 0;

private long startTime = 0;

TimerThread()

{

init();

}

public void stopCounter()

{

stop = true;

}

public void reset()

{

init();

startTime = System.currentTimeMillis();

}

public void init()

{

counter = 0;

active = true;

stop = false;

}

public void destory()

{

active = false;

stop = true;

}

private String getTime()

{

long tmp = System.currentTimeMillis()-startTime;

int d = (int)(tmp/(1000*60*60))%24;//分

String temp = (d<10 ? "0"+d : d+"")+":";

d = (int)(tmp/(1000*60))%60;//分

temp += (d<10 ? "0"+d : d+"")+":";

d = (int)(tmp/1000)%60;//秒

temp += (d<10 ? "0"+d : d+"")+".";

temp += (tmp%1000)/100;

return temp;

}

private void pr(String message)

{

System.out.println(message);

}

public void run()

{

startTime = System.currentTimeMillis();

while(active)

{

while(!stop)

{

if(mark)

{

tarea.append(getTime() + " 第"+ counter + "次计数 /n");

counter++;

mark = false;

}

txcounter.setText(getTime());

try{Thread.sleep(100);}catch(Exception e){}

}

try{Thread.sleep(100);}catch(Exception e){}

}

}

}

// Variables declaration - do not modify

private javax.swing.JButton btreset;

private javax.swing.JTextField txcounter;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JToggleButton btmark;

private javax.swing.JButton btstart;

private javax.swing.JLabel jLabel1;

private javax.swing.JTextArea tarea;

// End of variables declaration

}

Top

3 楼geddy()回复于 2004-11-16 20:59:29 得分 0

org.netbeans.lib.awtextra.AbsoluteLayout()

org.netbeans.lib.awtextra.AbsoluteConstraints()

未定义啊,能不能用标准的库实现!Top

 

本文地址:http://www.45fan.com/a/question/71725.html
Tags: 实现 功能 秒表
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部