一·图形化界面(GUI:Graphical User Interface)
1·AWT包
2·Swing包
3·主界面分析
4·界面设置(JFrame)
1·界面设置格式:
·先创建JFrame对象:
JFrame gameJframe = new JFrame();
·给界面设置大小:
gameJframe.setSize(with:603,height:680);
·显示界面:
gameJframe.setVisilble(true);
//设置宽高 this.setSize(603, 680); //设置标题 this.setTitle("魏的拼图游戏"); //设置图层在最顶层 this.setAlwaysOnTop(true); //设置界面的位置 this.setLocationRelativeTo(null); //设置游戏的关闭模式 //括号里是0,就是什么都不做的默认窗口关闭操作 //括号里是1,就是hide-window 默认窗口关闭操作 //括号里是2,dispose-window 默认窗口关闭操作,注意当Java虚拟机中的最后一个可显示的窗口被处理掉时,vm可能会终止。 //括号里是3,退出应用程序默认的窗口关闭操作 //也可以用:WindowConstants.EXIT_ON_CLOSE,或者点上其他东西 this.setDefaultCloseOperation(3); //设置界面可见 this.setVisible(true);
五·菜单制作
1·引入JMenuBar类
包含功能,充值,等等功能
2·JMenu类
3·JMenuItem 类
用于创建具体功能的;
4·步骤
1·先创建JMenuBar的对象
2·再创建JMenu的对象
3·再创建JMenultem的对象
4·再将JMenultem的对象添加到JMenu对象中,再将JMenu对象添加到JMenuBar对象中。
实现代码:
//创建整个菜单对象 JMenuBar menuBar = new JMenuBar(); menuBar.setName("小菜单"); //创建菜单上面的两个选项的对象 JMenu functionJMenu = new JMenu("功能"); JMenu aboutJMenu = new JMenu("关于"); //创建选项下面的条目对象 JMenuItem replayJMenuItem = new JMenuItem("重新游戏"); JMenuItem reLoginJMenuItem = new JMenuItem("重新登入"); JMenuItem closeJMenuItem = new JMenuItem("关闭游戏"); //将创建的条目对象添加到功能对象 JMenuItem accountItem = new JMenuItem("公众号"); functionJMenu.add(replayJMenuItem); functionJMenu.add(reLoginJMenuItem); functionJMenu.add(closeJMenuItem); //将创建的条目对象添加到关于我们对象 aboutJMenu.add(accountItem); //将功能对象添加到菜单对象 menuBar.add(functionJMenu); menuBar.add(aboutJMenu); //设置整个菜单 setJMenuBar(menuBar);
六·添加图片
1·用ImageIcon添加图片
2·用JLable管理图片区域
对图片的宽高位置边框进行设置
先创建ImageIcon的对象把图片的路径添加进去,注意图片位置要在所建项目中,
ImageIcon icon = new ImageIcon("D:\\java练习\\puzzlegame\\src\\image (15).jpeg"); 再创建JLable 的对象管理图片 JLabel image = new JLabel(icon);
用setBounds设置图片的位置,和大小
image.setBounds(0, 0, 400, 405); 添加图片到JFrame界面中的隐藏容器(ContentPane)中
this.getContentPane().add(image);
先添加的图片显示在上层;
背景图片要最后添加
注意//在创建界面中(JFrame)取消默认居中的位置,只有取消了才会按照XY轴的形式添加组件
this.setLayout(null);
七·事件
1·事件的定义
·事件是可以被组件识别的操作
·当你都组件干了某件事情之后,就会执行对应的代码
2·事件的要素
·事件源:按钮 图片 窗体·······
·事件:某些操作
如:鼠标单击,鼠标入·······
·绑定监听:当事件源上发生了某个事件,则执行某段代码
3·常见监听
KeyListener MouseListener ActionListener
键盘监听 鼠标监听 动作监听(空格,鼠标单击)
实现动作监听:
先创建Button对象
Button newGameButton = new Button("按钮");
设置宽高,大小
newGameButton.setBounds(0,0,200,50); 添加动作监听,括号里的是实现类(匿名内部类),实现ActionListener接口,
newGameButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("点击按钮后执行的"); } });
将按钮添加到界面中
this.getContentPane().add(newGameButton);
实现鼠标监听:
可以实现:
·动作监听
·鼠标监听中的单击事件
·鼠标监听中的松开事件
设置按钮的位置大小
button1.setBounds(200,0,200,50); 给按钮添加鼠标监听,括号里是实现MouseListener接口的匿名内部类; button1.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { System.out.println("单击");//按下并释放 } @Override public void mousePressed(MouseEvent e) { System.out.println("按下不松"); } @Override public void mouseReleased(MouseEvent e) { System.out.println("松开"); } @Override public void mouseEntered(MouseEvent e) { System.out.println("划入"); } @Override public void mouseExited(MouseEvent e) { System.out.println("划出"); } }); 将按钮添加到界面中; this.getContentPane().add(button1);
实现键盘监听:
给整个界面添加键盘监听:
this.addKeyListener(new KeyListener() { @Override 暂时不理: public void keyTyped(KeyEvent e) { System.out.println(""); } 按下后不松(如果一直按着不松就会重复执行): @Override public void keyPressed(KeyEvent e) { System.out.println("按下不松"); } 按下后松开: @Override public void keyReleased(KeyEvent e) {
利用e.getKeyCode();来读取按下键盘中的那些按键,读取的是其对应的asll表
int code = e.getKeyCode(); if (code == 65) { System.out.println("你按的是A"); }
} });