| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:[求助]关于线程的使用
只看楼主 加入收藏
扯の天堂
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-1-30
收藏
 问题点数:0 回复次数:5 
[求助]关于线程的使用
写个JAVA程序,用线程模拟一个竖状的交通灯,红黄绿 3个灯从上到下依次排列,每秒从上到下一个灯亮,其他两个灭,3个灯依次循环
搜索更多相关主题的帖子: 线程 
2007-03-04 14:24
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;

public class PowerTest extends JPanel implements Runnable{
private ColorLabel[] colorLabel;
private Thread t;
private int i=0;
private JPanel jpanel;

public PowerTest(){
init();
}

private void init(){
this.setLayout(new BorderLayout());

colorLabel=new ColorLabel[3];
jpanel=new JPanel();
jpanel.setLayout(new GridLayout(3,1));
colorLabel[0]=new ColorLabel();
colorLabel[0].setSize(30,30);
colorLabel[0].setBackground(new Color(170,0,0));
colorLabel[1]=new ColorLabel();
colorLabel[1].setSize(30,30);
colorLabel[1].setBackground(new Color(255,170,0));
colorLabel[2]=new ColorLabel();
colorLabel[2].setSize(30,30);
colorLabel[2].setBackground(new Color(0,170,0));

jpanel.add(colorLabel[0]);
jpanel.add(colorLabel[1]);
jpanel.add(colorLabel[2]);

this.add(jpanel,BorderLayout.CENTER);
t=new Thread(this,"power");
t.start();
}

public void run(){
while(true){
try{
if(i==0){
colorLabel[0].setBackground(new Color(250,0,0));
colorLabel[1].setBackground(new Color(255,170,0));
colorLabel[2].setBackground(new Color(0,170,0));
colorLabel[0].repaint();
colorLabel[1].repaint();
colorLabel[2].repaint();
i=1;
}else if(i==1){
colorLabel[0].setBackground(new Color(170,0,0));
colorLabel[1].setBackground(new Color(255,255,0));
colorLabel[2].setBackground(new Color(0,170,0));
colorLabel[0].repaint();
colorLabel[1].repaint();
colorLabel[2].repaint();
i=2;
}else if(i==2){
colorLabel[0].setBackground(new Color(170,0,0));
colorLabel[1].setBackground(new Color(255,170,0));
colorLabel[2].setBackground(new Color(0,255,0));
colorLabel[0].repaint();
colorLabel[1].repaint();
colorLabel[2].repaint();
i=0;
}
Thread.sleep(1000);
}catch(Exception e){
System.out.println(e.toString());
}
}
}

public static void main(String[] args){
JFrame jframe=new JFrame("红绿灯");
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.getContentPane().add(new PowerTest());
jframe.setSize(200,500);
jframe.setVisible(true);
}
}

class ColorLabel extends JLabel{
public void paintComponent(Graphics g){
g.setColor(this.getBackground());
g.fillOval(0,0,this.getWidth(),this.getHeight());
super.paintComponent(g);
}

public void paintBorder(Graphics g){
g.setColor(Color.black);
g.drawOval(0,0,this.getSize().width-1,this.getSize().height-1);
}
}

我的msn: myfend@
2007-03-04 16:44
lxx2844
Rank: 1
等 级:新手上路
威 望:2
帖 子:129
专家分:0
注 册:2006-12-5
收藏
得分:0 
X10UNHbe.txt (750 Bytes) [求助]关于线程的使用



www./ Bst Love java!
2007-03-04 16:45
lxx2844
Rank: 1
等 级:新手上路
威 望:2
帖 子:129
专家分:0
注 册:2006-12-5
收藏
得分:0 
class shuchu
{
public static void main(String []args)
{
test tt=new test();
new Thread(tt).start();
new Thread(tt).start();
new Thread(tt).start();
}
}
class test implements Runnable
{
//int i=1;
//Object ob=new Object();
public void run()
{
while(true){
synchronized(this)
{
String str = Thread.currentThread().getName();
if(str.equals("Thread-0")){
System.out.println("red");
}else if(str.equals("Thread-1")){
System.out.println("yellow");
}else if(str.equals("Thread-2")){
System.out.println("blue");
}
//System.out.println(str);
try{
Thread.sleep(1000);
}catch(Exception cd){

}

}
}
}
}

www./ Bst Love java!
2007-03-04 16:48
扯の天堂
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-1-30
收藏
得分:0 

谢谢楼上2位!!

2007-03-04 22:05
剃头刀
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-3
收藏
得分:0 
二楼那个 有图形界面吗?我怎么看不到?
2007-03-06 21:34
快速回复:[求助]关于线程的使用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033052 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved