JAVA 编写一个带有窗口的应用程序

~

这样:

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对象的构造方法中启动一个定时器,每隔一秒检查该方向上的灯是否为绿,是则打印车辆集合和将集合中的第一辆车移除掉。



相关兴趣推荐

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网