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

编写一个带有窗口的应用程序。在窗口的北面添加一个下拉列表,该下拉列表有“红灯”、“绿灯”和“黄灯”三个选项。在窗口的添加一个画布,当用户在下拉列表选择某项后,画布上绘制相... 编写一个带有窗口的应用程序。在窗口的北面添加一个下拉列表,该下拉列表有“红灯”、“绿灯”和“黄灯”三个选项。在窗口的 添加一个画布,当用户在下拉列表选择某项后,画布上绘制相应的信号灯。 展开
 我来答
大野瘦子
高粉答主

2019-10-22 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.2万
展开全部

这样:

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

百度网友8c58a1c
2019-09-15 · TA获得超过5288个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

源代码如下:

Tetres_windows.java/** 俄罗斯方块的窗体*///import javax.swing.*;

//import java.awt.*;public class Tetres_windows {public static void main(String[] args) 

{WindowMenu win = new WindowMenu("俄罗斯方块",200,30,900,1000);}}

WindowMenu.java/** 俄罗斯方块的菜单*/import javax.swing.*;

import java.awt.event.InputEvent;import java.awt.event.KeyEvent;

import javax.swing.JFrame.*;

public class WindowMenu extends JFrame {JMenuBar menubar;

JMenu menu0,menu1,menu2,subMenu;

JMenuItem item1,item2,item3;

public WindowMenu(String s,int x,int y,int w,int h) .

{init(s);setLocation(x,y);setSize(w,h);setVisible(true);

setDefaultCloseOperation(DISPOSE_ON_CLOSE);}

void init(String s)

 {setTitle(s);menubar = new JMenuBar();menu0 = new JMenu("游戏"); //菜单栏的第一个选项

item1 = new JMenuItem("新游戏(new)");

item2 = new JMenuItem("重新开始");

menu0.add(item1);menu0.addSeparator(); //设置子菜单之间的分割线

menu0.add(item2);menu0.addSeparator(); //设置子菜单之间的分割线

subMenu = new JMenu("难度等级");

menu0.add(subMenu);

subMenu.add(new JMenuItem("初级"));

subMenu.add(new JMenuItem("中级"));

subMenu.add(new JMenuItem("高级"));

menu0.addSeparator();item3 = new JMenuItem("退出");

menu0.add(item3);menubar.add(menu0);

menu1 = new JMenu("编辑"); //菜单栏的第二个选项

item1 = new JMenuItem("后退一步");menu1.add(item1);menu1.addSeparator(); //设置子菜单之间的分割线item2 = new JMenuItem("前进一步");

menu1.add(item2);menubar.add(menu1);menu2 = new JMenu("关于");

item1 = new JMenuItem("作者:rwxian");

menu2.add(item1);menu2.addSeparator();item2 = new JMenuItem("版本:v1.0");

menu2.add(item2);menubar.add(menu2);setJMenuBar(menubar);}}

扩展资料:

发展前景

计算机的诞生及广泛应用推动了IT领域的发展,但21世纪的计算机早已不是访问INTERNET的唯一的途径。各类更具信息化的电子产品逐渐进入IT领域,推动了PC时代的大发展。

由于各种消费信息的急剧增加,传统的客户机的各方面条件均不如PC,PC的发展对服务器的应用管理体统也提出了更高标准。

Java语言完全满足了PC的条件,在减少内存,直接在各类电子产品中运行,在网络中可被任何设备所识别,充分利用网络资源等方面有所突破创新,为PC时代的发展创造了有力条件。

随着IT产业的发展,许多企业中的计算机应用程序也在随之转型,企业中所应用的计算机模式逐渐向客户端较小、服务器随之增大、数据库的容量也在相应增加的方向转变。

此外,加上Java语言独有的特点,根据其在各项服务器中应用程序的开发所占有的优势,企业版的J2SE为企业环境中计算机模式的应用提供了良好的平台。

Java语言为与数据库联系紧密设计了Java servlet和SQL-J技术,以及JSP技术。随着JSP技术的发展,使JAVA语言的网络应用更为实际化、更高效快捷,成为IT产业常用的技术。

JSP以Java语言作为其服务器端的使用语言,结合了JAVA SCRIPT等多种其他客户端语言,使网络浏览器更为方便的展现。

在远程网络教学方面,由于JAVA改变了传统的基于Microsoft Front Page或HTML语言制作的Web页面形态,使网络远程教学更加朝着动态、便捷化、安全化的方向发展,丰富了网络远程教学的手段和覆盖面。

参考资料来源:百度百科-JAVA

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
De_seraph
推荐于2016-05-06 · TA获得超过451个赞
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:114万
展开全部
import javax.swing.*;
import java.awt.*;

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import java.awt.geom.Ellipse2D;

public class test extends JFrame {

JComboBox cb = new JComboBox();
JPanel p1 = new JPanel();
drawPanel p2 = new drawPanel();
String str = "";
public test()
{
this.setLayout(new BorderLayout());
p1.setLayout(new GridLayout(1,1));
cb.addItem("红灯");
cb.addItem("绿灯");
cb.addItem("黄灯");
cb.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getItem().equals("红灯"))
{
p2.repaint();
p2.i = 1;

}
if(arg0.getItem().equals("绿灯"))
{
p2.i = 2;
p2.repaint();
}
if(arg0.getItem().equals("黄灯"))
{
p2.i = 3;
p2.repaint();
}
}

});
p1.add(cb);
this.add(p1,BorderLayout.NORTH);
this.add(p2,BorderLayout.CENTER);

this.setSize(200,400);
this.setVisible(true);
}

class drawPanel extends JPanel
{
int i = 0;
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
Ellipse2D circle1 = new Ellipse2D.Double();
Ellipse2D circle2 = new Ellipse2D.Double();
Ellipse2D circle3 = new Ellipse2D.Double();
circle1.setFrameFromCenter(90,60,130,100);
if(i == 1)
{
g2.setColor(Color.RED);

}else g2.setPaint(Color.GRAY);
g2.fill(circle1);
circle2.setFrameFromCenter(90,160,130,200);
if(i == 2)
{
g2.setColor(Color.GREEN);

}else g2.setColor(Color.GRAY);

g2.fill(circle2);
circle3.setFrameFromCenter(90,260,130,300);
if(i == 3)
{
g2.setPaint(Color.YELLOW);

}else g2.setPaint(Color.GRAY);

g2.fill(circle3);
}
}
public static void main(String[] args) {
test t = new test();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式