2. 【请复制本程序,作为java程序代码,进行编译,补充填写缺失代码部分,并实现题目要求功能,从而获得空白填写所需的内容。】

定义3个线程,模拟红绿灯的效果

一个线程控制画一个实心红圆

一个线程控制画一个实心黄圆

一个线程控制画一个实心绿圆

红灯显示5秒,黄灯显示2秒,绿灯显示4秒

按以上顺序交替进行。

package naizi;
import java.awt.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class Tlight extends Frame implements WindowListener,ComponentListener{
private int width = 200;
private int height = 200;
private Color color;
class RedRunnable implements Runnable {
public void run() {
color = Color.RED;
repaint();
}
}
class GreeRunnable implements Runnable {
public void run() {
color = Color.GREEN;
repaint();
}
}
class YellowRunnable implements Runnable {
public void run() {
color = Color.YELLOW;
repaint();
}
}
Tlight(){
super("traffic lights");
this.setSize(width,height);
this.setLocation(200, 200);
this.setBackground(Color.white);
this.setLayout(new FlowLayout());
addWindowListener(this);
addComponentListener(this);
this.setVisible(true);
}
public void paint(Graphics g){ //绘图方法
int x = width/6;
int y = height/3;
g.setColor(color);;//设置颜色
g.fillOval(x, y, 100, 100);//以x,y为圆心,100为半径画圆
}
public static void main(String[] args) throws InterruptedException{//抛出异常,请写具体类型
Tlight t = new Tlight();
RedRunnable red = t.new RedRunnable();
GreeRunnable gree = t.new GreeRunnable();
YellowRunnable yellow = t.new YellowRunnable();
while(true){
(new Thread(red)).run();//显示红色圆
Thread.sleep(5000);//停5秒
(new Thread(yellow)).run();//显示黄色圆
Thread.sleep(2000);//停2秒
(new Thread(gree)).run();//显示绿色圆
Thread.sleep(4000);//停4秒
}
}
public void componentResized(ComponentEvent e) {
width = getWidth();
height = getHeight();
repaint();
}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowOpened(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void componentMoved(ComponentEvent e) {}
public void componentShown(ComponentEvent e) {}
public void componentHidden(ComponentEvent e) {}
}

测试截图如下:

最新文章

  1. javamail 利用qq邮箱做邮箱服务器,简单小demo
  2. 清北暑假模拟day2 将
  3. Python基础篇【第2篇】: Python自定义函数
  4. [USACO2005][POJ2226]Muddy Fields(二分图最小点覆盖)
  5. Hadoop 2.0+YARN启动脚本分析与实战经验
  6. ActionBar功能,效果图一览
  7. ASP.NET获取上传图片的大小
  8. poj2569
  9. VS2012+EF6+Mysq
  10. CSS预处理器——Sass、LESS和Stylus实践【未删减版】
  11. Java之多态
  12. python 基础之python的六大标准数据类型
  13. 【BZOJ4919】[Lydsy六月月赛]大根堆
  14. spring quartz1.8.6集群结算服务定时任务与appserver独立分开
  15. MySQL输入密码后闪退
  16. python如何序列化json数据
  17. ExtAspNet下通过文档路径实现文档的下载
  18. iOS开发改变字符串中指定字符颜色,大小等等
  19. [Java基础] Java enum的用法详解
  20. G: 又见模法师

热门文章

  1. 简述关于ASP.NET MVC与.NET CORE 的区别
  2. 二.安全NA之ASA基础
  3. Zabbix-设置自动发现规则实例
  4. Nacos(二):SpringCloud项目中接入Nacos作为注册中心
  5. 小白学Python(2)——常用Python编程工具,Python IDE
  6. Laravel框架内实现api文档:markdown转为html
  7. JVM(十二):方法调用
  8. Windows上快捷登陆应用程序
  9. swith case判断
  10. MySQL数据库之表的增删改查