1 packagedemo.choose;2
3 importjava.awt.Color;4 importjava.awt.Container;5 importjava.awt.Image;6 importjava.awt.event.MouseAdapter;7 importjava.awt.event.MouseEvent;8
9 importjavax.swing.ImageIcon;10 importjavax.swing.JDialog;11 importjavax.swing.JFrame;12 importjavax.swing.JLabel;13 importjavax.swing.JOptionPane;14
15 importdemo.start.GameStart;16 /**
17 * 初始界面类18 *@authorAdministrator19 *20 */
21 @SuppressWarnings("all")22 public class ChooseFunction extendsJFrame{23 public JDialog jd=newJDialog();24 public voidinit(){25 this.setSize(500, 800);//设置窗口的大小26 //设置窗口布局为null
27 this.setLayout(null);//把布局设置为空才能把组件位置设置为特殊位置
28 Container contain=getContentPane();//获取整个界面的容器
29 contain.setBackground(Color.BLACK);//设置界面的背景30 //加图标
31 this.setTitle("Airplane big war!!");32 this.setIconImage(new ImageIcon("./src/images/icon.png").getImage());33
34
35 //添加图片在上面
36 JLabel jl1=new JLabel(new ImageIcon("./src/images/play.gif"));//创建一个JLable用来放play图片
37 JLabel jl2=new JLabel(new ImageIcon("./src/images/exit.gif"));//创建一个JLable用来放exit图片
38 JLabel jl3=new JLabel(new ImageIcon("./src/images/war.gif"));//创建一个JLable用来放标题
39 JLabel jl4=new JLabel(new ImageIcon("./src/images/introduction.gif"));//创建一个JLable用来放说明40 //设置游戏的说明
41 jl4.setForeground(Color.RED);42 jl1.setBounds(160, 300, 200, 100);//开始图片的位置
43 jl2.setBounds(160, 400, 200, 100);//退出图片的位置
44 jl3.setBounds(0, 100,500, 120);//标题图片的位置
45 jl4.setBounds(100, 500,319,112);//功能介绍图片的位置
46 this.add(jl1);//把开始图片添加到框架中
47 this.add(jl2);//把退出图片添加到框架中
48 this.add(jl3);//把标题图盘添加到框架中
49 this.add(jl4);把说明图片添加到框架中50 //为play组件添加鼠标事件,把当前窗口传进去
51 jl1.addMouseListener(new PlayMouseListener(this));//为play添加鼠标事件52 //为exit组件添加鼠标事件
53 jl2.addMouseListener(new ExitMouseListener());//为exit添加鼠标事件54 //为introduction设置弹框
55 jl4.addMouseListener(new IntroduceMouseListener(this));//为说明添加鼠标事件
56 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭
57 this.setLocationRelativeTo(null);//把窗口的相对屏幕的位置居中显示
58 this.setVisible(true);//把窗口可视化
59 }60 //为游戏说明设置鼠标监听事件
61 public class IntroduceMouseListener extendsMouseAdapter{62
63 //把当前窗口创建出来
64 privateChooseFunction chooseFunction;65
66 publicIntroduceMouseListener(ChooseFunction chooseFunction) {67 this.chooseFunction =chooseFunction;68 }69 @Override70 public voidmouseEntered(MouseEvent e) {71 jd.setTitle("Airplane big war!!");//设置显示框的标题
72 jd.setIconImage(new ImageIcon("./src/images/icon.png").getImage());//设置显示框的图标73 //jd.setLocationRelativeTo(getOwner());//并没什么用74 //jd.setLocationRelativeTo(chooseFunction);//也并没什么用
75 jd.setBounds(415, 200, 450, 380);//设置标题框的位置和大小
76 /*ImageIcon icon = new ImageIcon("./src/images/reduce.gif");77 // icon.setImage(icon.getImage().getScaledInstance(icon.getIconWidth(),78 // icon.getIconHeight(), Image.SCALE_DEFAULT));79 JLabel lb = new JLabel();80 lb.setIcon(icon);*/
81 JLabel lb=new JLabel(new ImageIcon("./src/images/reduce.gif"));//创建一个JLable放说明的图片
82 jd.add(lb);//把JLable添加到说明框中
83 jd.setVisible(true);//设置说明框的可视化
84 }85 @Override86 public voidmouseExited(MouseEvent e) {87 jd.setVisible(false);//把说明框的可视化去掉
88 }89 }90 //为play组件添加鼠标事件做准备
91 public class PlayMouseListener extendsMouseAdapter{92 //把当前窗口创建出来
93 privateChooseFunction chooseFunction;94 //构造函数传值
95 publicPlayMouseListener(ChooseFunction chooseFunction) {96 this.chooseFunction =chooseFunction;97 }98 @Override99 public voidmouseClicked(MouseEvent e) {100 if(e.getButton()==1){101 //把当前窗口隐藏
102 chooseFunction.setVisible(false);103 //调用下一个窗口的初始界面
104 new GameStart("images/sky.gif");105 }106
107 }108 }109
110 //为exit组件添加鼠标事件做准备
111 public class ExitMouseListener extendsMouseAdapter{112 @Override113 public voidmouseClicked(MouseEvent e) {114 if(e.getButton()==1){115 int n=JOptionPane.showConfirmDialog(null, "你确定退出吗?");116 if(n==0){117 System.exit(0);118 }119 }120 }121
122 }123 //主函数入口
124 public static voidmain(String[] args) {125 newChooseFunction().init();126 }127 }