今天的作业是一个使用线程和Swing写一个计时器,显示为现在时间是:xx时xx分xx秒,距离放学还有xx时xx分xx秒
我的程序如下,不过感觉跑题了
import java.awt.BorderLayout;
import java.util.Date;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class HomeWork extends JFrame {
public static void main(String[] args) {
MyThread myThread=new MyThread();
myThread.start();
}
}
class MyThread extends Thread{
public void run() {
JFrame jFrame=new JFrame();
System.out.println("请输入放学时间(0到24之间一整数):");
Scanner sc=new Scanner(System.in);
int FangSchool=sc.nextInt();Date s=new Date();
while(true){
//MyThread.sleep(1000);
int h1=s.getHours();
int m1=s.getMinutes();
int s1=s.getSeconds();
int TIME=(FangSchool-h1)*3600-m1*60-s1;
int h2=TIME/3600;
int m2=TIME%3600/60;
int s2=TIME%60;
jFrame.setVisible(true);
jFrame.setSize(300, 300);
JLabel jLabel1=new JLabel("现在的时间是:"+h1+"时"+m1+"分"+s1+"秒");
JLabel jLabel2=new JLabel("距离放学还有:"+h2+"时"+m2+"分"+s2+"秒");
JPanel jPanel=new JPanel(new BorderLayout());
jPanel.add(BorderLayout.NORTH,jLabel1);
jPanel.add(BorderLayout.SOUTH,jLabel2);
jFrame.add(jPanel);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
}