1、首先设计好界面。
3、然后编写OnInitDialog初始化程式。
4、然后编写OnSysCommand程式。
5、然后编写OnPaint绘制程式。
6、最后编写OnSetlock锁程式。
这样:
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对象的构造方法中启动一个定时器,每隔一秒检查该方向上的灯是否为绿,是则打印车辆集合和将集合中的第一辆车移除掉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)