求人用java编写一条计时器代码。
具体的要求是:1.生成一个窗口(这个窗口如果有置顶功能,和能够隐藏到系统托盘栏中的话,则更好),按下“开始”按钮后,开始计时。2.不要有“清零”按钮,仅有一个按钮。也就是...
具体的要求是:
1.生成一个窗口(这个窗口如果有置顶功能,和能够隐藏到系统托盘栏中的话,则更好),按下“开始”按钮后,开始计时。
2.不要有“清零”按钮,仅有一个按钮。也就是说,仅有“开始/暂停”按钮。即“开始”按钮按下后,替换为“暂停”按钮(按钮有快捷键功能则更好)。
3.即使是关闭窗口后,计时也不清零。比如说,我这次计时10分钟10秒,而后关闭窗口,下次启动时,继续累加上次的计时时间。
4.每次关闭窗口,自动将此次的计时时间输出添加到文件“时长.txt”的最后一行中。 展开
1.生成一个窗口(这个窗口如果有置顶功能,和能够隐藏到系统托盘栏中的话,则更好),按下“开始”按钮后,开始计时。
2.不要有“清零”按钮,仅有一个按钮。也就是说,仅有“开始/暂停”按钮。即“开始”按钮按下后,替换为“暂停”按钮(按钮有快捷键功能则更好)。
3.即使是关闭窗口后,计时也不清零。比如说,我这次计时10分钟10秒,而后关闭窗口,下次启动时,继续累加上次的计时时间。
4.每次关闭窗口,自动将此次的计时时间输出添加到文件“时长.txt”的最后一行中。 展开
1个回答
展开全部
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);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询