Java 实训5 编写一个窗体应用程序模拟交通信号灯
2017-10-28 19:15
453 查看
题目描述:
在窗口的北面添加一个下拉列表,该下拉列表有“红灯”,“绿灯”,“黄灯”三个选项。在窗口的中心添加一个画布,当用户在下拉列表选择某项后,画布上绘制相应的信号灯。
参考结果:
代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Graphics;
public class Test extends JFrame {
public JComboBox box;
int flag = 0;
jpNewPanel jpNewPanel;
public static void main(String[] args) {
Test frame = new Test();
frame.setSize(500, 500);//图形界面大小
frame.setLocationRelativeTo(null);//图形界面出现在屏幕中央
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭
frame.setTitle("信号灯");//标题
frame.setVisible(true);
}
public Test() {
box = new JComboBox();
box.addItem("请选择");
box.addItem("红灯");
box.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签
jpNewPanel.repaint();
}
});
box.addItem("黄灯");
box.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签
jpNewPanel.repaint();
}
});
box.addItem("绿灯");
box.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签
jpNewPanel.repaint();
}
});
add(box, BorderLayout.NORTH);
jpNewPanel = new jpNewPanel();
add(jpNewPanel, BorderLayout.CENTER);
}
class jpNewPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(150, 100, 120, 120);//绘制圆形
if (flag == 1) {
g.setColor(Color.RED);
g.fillOval(150, 100, 120, 120);//填充颜色
} else if (flag == 2) {
g.setColor(Color.YELLOW);
g.fillOval(150, 100, 120, 120);
} else if (flag == 3) {
g.setColor(Color.GREEN);
g.fillOval(150, 100, 120, 120);
}
}
}
}运行结果:
在窗口的北面添加一个下拉列表,该下拉列表有“红灯”,“绿灯”,“黄灯”三个选项。在窗口的中心添加一个画布,当用户在下拉列表选择某项后,画布上绘制相应的信号灯。
参考结果:
代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Graphics;
public class Test extends JFrame {
public JComboBox box;
int flag = 0;
jpNewPanel jpNewPanel;
public static void main(String[] args) {
Test frame = new Test();
frame.setSize(500, 500);//图形界面大小
frame.setLocationRelativeTo(null);//图形界面出现在屏幕中央
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭
frame.setTitle("信号灯");//标题
frame.setVisible(true);
}
public Test() {
box = new JComboBox();
box.addItem("请选择");
box.addItem("红灯");
box.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签
jpNewPanel.repaint();
}
});
box.addItem("黄灯");
box.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签
jpNewPanel.repaint();
}
});
box.addItem("绿灯");
box.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
flag = box.getSelectedIndex();//判断点击的下拉框的第几个标签
jpNewPanel.repaint();
}
});
add(box, BorderLayout.NORTH);
jpNewPanel = new jpNewPanel();
add(jpNewPanel, BorderLayout.CENTER);
}
class jpNewPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(150, 100, 120, 120);//绘制圆形
if (flag == 1) {
g.setColor(Color.RED);
g.fillOval(150, 100, 120, 120);//填充颜色
} else if (flag == 2) {
g.setColor(Color.YELLOW);
g.fillOval(150, 100, 120, 120);
} else if (flag == 3) {
g.setColor(Color.GREEN);
g.fillOval(150, 100, 120, 120);
}
}
}
}运行结果:
相关文章推荐
- Java实训——编写一个窗体应用程序模拟交通信号灯。
- Java 组件及事件处理实训 实训2:编写一个窗体程序,用于计算一元二次方程
- Java 实训4 编写一个窗体程序显示日历
- Java实训——编写一个窗体程序,能够对文本区中的文字设置字体和大小。
- Java 实训1:编写一个窗体程序显示日历表。
- Java 组件及事件处理实训 实训1: 编写一个窗体程序,能够对文本区中的文字设置字体和大小。
- Java实训——编写一个窗体程序显示日历。
- Java实训——编写一个窗体程序,用于计算一元二次方程。
- 微波炉模拟应用程序(帮朋友的同学做的一个java选修课大作业)
- java小练习(一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。)
- 系统学习JavaWeb之三编写一个简单的Servlet应用程序
- 编写一个应用程序,一些相续正整数的立方和正好等于另一个整数的立方(java实现)
- java十二周实验.编写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器,当单击
- C#窗体-个人简历生成(自己设计并编写一个 Windows 应用程序,要求用到TextBox、GroupBox、RadioButton )
- 猜数字游戏。编写一个Java应用程序,实现功能:
- java 编写多线程应用程序,模拟多个人通过独木桥的模拟。 线程问题
- 编写多线程应用程序,模拟多个人通过一个山洞的模拟
- JAVA--第十一周实验--模拟一个信号灯的软件--代码重构--升级版
- java上机 第十一周 任务2 模拟一个信号灯
- JAVA第九周任务1.编写一个模拟用户帐户的程序