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

java上机 第十一周 任务2 模拟一个信号灯

2012-11-07 23:10 429 查看
/*
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:模拟一个信号灯
* 作    者:薛广晨
* 完成日期:2012  年 11 月  07 日
* 版 本号:x1.0

* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 在JFrame的北面添加一个下拉列表,该下拉列表有“默认无信号”、“红灯”、“绿灯”和“黄灯”选项。
*        在窗口的中心添加一个画布,当用户在下拉列表选择某项后,在画布上相应的信号灯。
*        程序组成:编写 一个Canvas的子类SignalCanvas,负责画灯。
*        编写 一个GUI类,实现选择画图。编写 一个程序执行入口测试该软件
* 程序输出:
* 程序头部的注释结束
*/
package xue;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MytransJframe extends JFrame implements ItemListener{
Choice jcb;
SignalCanvas sc;

MytransJframe()
{
setLayout(new BorderLayout());
setTitle("交通灯");
setSize(300,300);
setVisible(true);
jcb = new Choice();
sc = new SignalCanvas();

jcb.addItem("无信号");
jcb.addItem("红灯");
jcb.addItem("黄灯");
jcb.addItem("绿灯");
jcb.addItemListener(this);

add(jcb, BorderLayout.NORTH);
add(sc, BorderLayout.CENTER);

setBounds(100, 100, 240, 240);
setVisible(true);
validate();
}

public void itemStateChanged(ItemEvent e) {
String name = (String)jcb.getSelectedItem();
if(name == "无信号")
{
sc.setMyColor(Color.WHITE);
sc.repaint();
}
else if(name == "红灯")
{
sc.setMyColor(Color.RED);
sc.repaint();
}
else if(name == "黄灯")
{
sc.setMyColor(Color.YELLOW);
sc.repaint();
}
else if(name == "绿灯")
{
sc.setMyColor(Color.GREEN);
sc.repaint();
}
}

}

//SignalCanvas类
package xue;

import java.awt.*;

public class SignalCanvas extends Canvas{
private Color myColor=Color.white;

public Color getMyColor() {
return myColor;
}
public void setMyColor(Color myColor) {
this.myColor = myColor;
}

SignalCanvas()
{
setBackground(Color.white);
}

public void paint(Graphics g)
{
g.setColor(myColor);
g.drawOval(50, 50, 100, 100);
g.fillOval(50, 50, 100, 100);
}

}

运行结果:

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