Java写了两个奇怪的线程

来源:互联网 发布:360压缩软件for mac 编辑:程序博客网 时间:2024/04/20 04:31
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ThreadCeShi extends JFrame{
static Threadt t;
static Threadt2 t2;
JPanel timePanel=new JPanel();
JTextField timeText=new JTextField(30);
JLabel timeLabel=new JLabel();
JLabel timeLabel2=new JLabel();
ThreadCeShi()
{
setTitle("TheadTest");
setSize(400,400);
setVisible(true);//窗体显示
setResizable(false);//设置窗体不可变大小
setLayout(null);
this.setBackground(Color.blue);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体关闭
validate();
int screenHeight=(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int screenWidth=(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();//屏幕大小
int shellHeight=(int)getBounds().getHeight();
int shellWidth=(int)getBounds().getWidth();//窗体大小
if(shellHeight>screenHeight)shellHeight=screenHeight;
if(shellWidth>screenWidth)shellWidth=screenWidth;
this.setLocation((screenWidth-shellWidth)/2,(screenHeight-shellHeight)/2);//设置窗体居中
add(timePanel);
timePanel.setBounds(100,100,200,130);
timePanel.setBackground(Color.WHITE);
timePanel.add(timeLabel);
timePanel.setLayout(null);
timeLabel.setText("你好!");
timeLabel.setFont(new Font("华文行楷",1,15));//设置字体
timeLabel.setBounds(0,0,200,60);
timePanel.add(timeLabel2);
timeLabel2.setText("啊哈!");
timeLabel2.setFont(new Font("微软雅黑",1,15));
timeLabel2.setBounds(0,60,200,60);
t=new Threadt();
t2=new Threadt2();
t.run();
t2.run();

}
class Threadt implements Runnable
{

public void run() {
  while(true)
{
try{
//System.out.println(new Date()); //打印当前时间
Thread.sleep(1);//休眠1毫秒

}catch(Throwable t){
t.printStackTrace();
}
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
timeLabel.setText(df.format(new Date()));
t2.run();
}
}
}
class Threadt2 implements Runnable
{
public void run()
{
while(true)
{
try
{
Thread.sleep(1);
}catch(Throwable t2)
{
t2.printStackTrace();
}
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置日期格式
timeLabel2.setText(df.format(new Date()));
t.run();
}
}
}
public static void main(String args[])
{
new ThreadCeShi();

}
}