您的位置:首页 > 编程语言 > Java开发

JAVA--第十一周实验--模拟一个信号灯的软件

2012-11-09 22:35 495 查看
Test类

 

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 模拟一个信号灯的软件
* 作 者: 雷恒鑫
* 完成日期: 2012 年 11 月 09 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:在JFrame的北面添加一个下拉列表,该下拉列表有“默认无信号”、“红灯”、“绿灯”和“黄灯”选项。
* 输入描述:在窗口的中心添加一个画布,当用户在下拉列表选择某项后,在画布上相应的信号灯。
* 输入描述:程序组成:编写 一个Canvas的子类SignalCanvas,负责画灯。
* 输入描述:编写 一个GUI类,实现选择画图。编写 一个程序执行入口测试该软件。
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
package Draw;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Select_draw draw = new Select_draw();

}

}


 

 

SignalCanvas类

 

package Draw;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;

public class SignalCanvas extends Canvas {
int x, y, r, i;

SignalCanvas(Color color) {
setBackground(color);
}

public void setX() {
this.x = (int) (Math.random() * 100) + 200;
}

public void setY() {
this.y = (int) (Math.random() * 100) + 200;
}

public void setR() {
this.r = (int) (Math.random() * 60) + 60;
}

public void paint(Graphics g) {
if (this.i == 1) {
g.setColor(Color.red);
// update(Graphics g)
} else if (this.i == 2) {
System.out.println("画出打印绿灯");
g.setColor(Color.green);
} else if (this.i == 3) {
g.setColor(Color.yellow);
} else {
System.out.println("画出打印白灯");
g.setColor(Color.white);
}

g.fillOval(x, y, 2 * r, 2 * r);
}

public void setI(int i) {
this.i = i;
}

}


Select_draw类

 

package Draw;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.*;

public class Select_draw extends JFrame implements ItemListener{
SignalCanvas myCanvas;
Choice choice;
Select_draw()
{
//		Frame jf = new Frame("画布");
setTitle("信号灯");
choice = new Choice();

choice.add("默认无信号");
choice.add("红灯");
choice.add("绿灯");
choice.add("黄灯");
add(choice,BorderLayout.NORTH);
choice.addItemListener(this);
myCanvas = new SignalCanvas(Color.white);
add(myCanvas,BorderLayout.CENTER);
setSize(600,600);
setVisible(true);
}

public void itemStateChanged(ItemEvent e)
{
String name = choice.getSelectedItem();
System.out.println(name);
if(name == "红灯")
{
//myCanvas = new SignalCanvas(Color.red);
//System.out.println(e.getSource());
myCanvas.setI(1);
myCanvas.setX();
myCanvas.setY();
myCanvas.setR();
//myCanvas.setX();
myCanvas.repaint();
}
else if(name == "绿灯")
{
System.out.println("打印绿灯");
//myCanvas = new SignalCanvas(Color.blue);
myCanvas.setI(2);
myCanvas.setX();
myCanvas.setY();
myCanvas.setR();
myCanvas.repaint();
}
else if(name == "黄灯")
{
//myCanvas = new SignalCanvas(Color.yellow);
myCanvas.setI(3);
myCanvas.setX();
myCanvas.setY();
myCanvas.setR();
myCanvas.repaint();
}
else
{
//myCanvas = new SignalCanvas(Color.white);
myCanvas.setI(4);
myCanvas.setX();
myCanvas.setY();
myCanvas.setR();
myCanvas.repaint();
}
//myCanvas = new SignalCanvas("");
}

}


运行结果:





 



 



 



 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐