求人用java编写一条计时器代码。

具体的要求是:1.生成一个窗口(这个窗口如果有置顶功能,和能够隐藏到系统托盘栏中的话,则更好),按下“开始”按钮后,开始计时。2.不要有“清零”按钮,仅有一个按钮。也就是... 具体的要求是:
1.生成一个窗口(这个窗口如果有置顶功能,和能够隐藏到系统托盘栏中的话,则更好),按下“开始”按钮后,开始计时。
2.不要有“清零”按钮,仅有一个按钮。也就是说,仅有“开始/暂停”按钮。即“开始”按钮按下后,替换为“暂停”按钮(按钮有快捷键功能则更好)。
3.即使是关闭窗口后,计时也不清零。比如说,我这次计时10分钟10秒,而后关闭窗口,下次启动时,继续累加上次的计时时间。
4.每次关闭窗口,自动将此次的计时时间输出添加到文件“时长.txt”的最后一行中。
展开
 我来答
仙戈雅3n
2017-02-22 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:891万
展开全部
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.*;
import java.util.*;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.plaf.OptionPaneUI;

public class Demo {
static boolean isRuning=false;
static boolean isFirst=true;
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {

JFrame form1 = new JFrame("Form1");

JTextField jTextField = new JTextField(10);
jTextField.setSize(10, 10);
jTextField.setText("0");
jTextField.setEditable(false);

JButton jButton = new JButton("开始");
jButton.setSize(10, 10);

Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
while(isRuning){
Integer counter = Integer.parseInt(jTextField.getText().trim());
counter++;
jTextField.setText(counter.toString());
try {
Thread.sleep(1000);
} catch (Exception e2) {
}
}
}
}
});

jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
   String text=jButton.getText().equals("开始")?"暂停":"开始";
   jButton.setText(text);
   isRuning=!isRuning;
   if(isFirst){
   thread.start();
   isFirst=false;
   }
}
});

JPanel panel = new JPanel();
panel.setSize(200, 200);
panel.add(jTextField, BorderLayout.NORTH);
panel.add(jButton, BorderLayout.CENTER);
form1.add(panel);
form1.setBounds(200, 100, 250, 150);
form1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form1.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent e) {
               // 窗口关闭前取出文本框的数字保存到外部文件,代码在此处写
JOptionPane.showMessageDialog(null, "Are you sure closing?");
}

@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub

}
});
form1.setVisible(true);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式