Thread

mport java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ColorThread
{


 public static void main(String[] args)
 {
  
  Myframe mf =new Myframe();//实例化对象
  Thread t=new Thread(mf);//加入线程
  t.start();//启动线程
 }
}

class Myframe extends JFrame implements Runnable,ActionListener
{
 private static final long serialVersionUID = 1L;
 Random rand = new Random(System.currentTimeMillis());//随机数.用当前系统时间做基数
 JPanel panel = new JPanel();//变色的面板
 final JButton button = new JButton("点击停止或启动");//按钮
 int action=0;//变色或停止变色 判断标示
 public Myframe()
 {
  super("1/10秒变色1次");
  button.setBounds(10, 10, 200, 30); //设置按钮坐标
  button.addActionListener(this); //设置按钮监听
  panel.setBounds(10, 50, 100, 100); //面板坐标
  panel.setBackground(Color.BLUE); //面板初始颜色
  this.setBounds(100, 100, 300, 300); //frame 初始大小坐标
  this.add(panel); //将面板加入frame
  this.setLayout(null); //设置frame布局为null
  this.add(button); //将按钮加入frame
  this.setDefaultCloseOperation(3); //设置关闭frame就退出程序
  this.setVisible(true); //设置frame显示为可见
 }
 /**
  * 实现Runnable线程接口
  */
 public void run()
 {
  while (true)//设置死循环
  {
   try
   {
    if(action==0)//判断操作为0时改变面板背景颜色
    {
     panel.setBackground(getcolor()); //变色
    }
    Thread.sleep(100);//10之一秒 的休眠
   }
   catch (InterruptedException e)
   {
    e.printStackTrace();
   }
  }
 }
 private Color getcolor() //获得颜色
 {
  return new Color(getNum(), getNum(), getNum());
 }
 private int getNum() //获得小于255的随机数字
 {
  return rand.nextInt(255);
 }
 public void actionPerformed(ActionEvent e)//监听事件
 {
  if(action==0) //点击后判断.修改值.
  {
   action =1;
  }else
  {
   action =0;
  }
  
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值