當前位置:歷史故事大全網 - 歷史天氣 - JAVA多线程编程求教

JAVA多线程编程求教

包com;

导入java.awt.Color;

导入java.awt.event.ActionEvent;

导入java.awt.event。 ActionListener;

导入java.util.Random;

导入javax.swing.JButton;

导入javax.swing.JFrame;

导入 javax.swing.JPanel;

公共类 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次");

按钮.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); //将按钮加入框架

this.setDefaultCloseOperation(3); //设置关闭frame就退出程序

this.setVisible(true); //设置frame显示为可视

}

/**

* 实现RunnableThread接口

*/

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 ;

}

}

}

//有注释。

  • 上一篇:民生銀行招聘筆試內容
  • 下一篇:禦龍鏡中隱歌詞什麽意思 主要講了什麽
  • copyright 2024歷史故事大全網