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