这样:
import java.awt.*
import java.awt.event.*
import javax.swing.*
import java.awt.Graphics
public class MainClass extends JFrame {
public JComboBox box
int flag = 0
jpNewPanel jpNewPanel
public static void main(String[] args) {
MainClass frame = new MainClass()
frame.setBounds(650,300,550,550)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setTitle("信号灯")
frame.setVisible(true)
}
public MainClass() {
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, 0, 120, 120)
if (flag == 1) {
g.setColor(Color.RED)
g.fillOval(150, 0, 120, 120)
} else if (flag == 2) {
g.setColor(Color.YELLOW)
g.fillOval(150, 0, 120, 120)
} else if (flag == 3) {
g.setColor(Color.GREEN)
g.fillOval(150, 0, 120, 120)
}
}
}
}
扩展资料:注意事项
每个Road对象都有一个name成员变量来代表方向,有一个vehicles成员变量来代表方向上的车辆集合。
在Road对象的构造方法中启动一个线程每隔一个随机的时间向vehicles集合中增加一辆车(用一个“路线名_id”形式的字符串进行表示)。
在Road对象的构造方法中启动一个定时器,每隔一秒检查该方向上的灯是否为绿,是则打印车辆集合和将集合中的第一辆车移除掉。
import javax.swing.*import java.awt.*
import java.awt.event.*
public class Test3 extends JFrame implements ActionListener{
JMenu m
JMenuItem mi1,mi2
JMenuBar mb
public Test3(){
m = new JMenu("学生查询")
mi1 = new JMenuItem("确认")
mi2 = new JMenuItem("取消")
mb = new JMenuBar()
m.add(mi1)
m.add(mi2)
mb.add(m)
this.setJMenuBar(mb)
this.setSize(400,300)
this.setLocationRelativeTo(null)//窗口居中
this.setVisible(true)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
mi1.addActionListener(this)
mi2.addActionListener(this)
}
public static void main(String[] args){
new Test3()
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==mi1){
JOptionPane.showMessageDialog(null, "你点击了确定按钮") }else{
JOptionPane.showMessageDialog(null, "你点击了取消按钮") }
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)