zoukankan      html  css  js  c++  java
  • java GUI

    GUI(如何创建一个窗口并显示)
    * Graphical User Interface(图形用户接口)。
    *
    Frame f = new Frame(“my window”);
    f.setLayout(new FlowLayout());//设置布局管理器
    f.setSize(500,400);//设置窗体大小
    f.setLocation(300,200);//设置窗体出现在屏幕的位置
    f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png"));
    f.setVisible(true);

    ###GUI(布局管理器)
    * FlowLayout(流式布局管理器)
    * 从左到右的顺序排列。
    * Panel默认的布局管理器。
    * BorderLayout(边界布局管理器)
    * 东,南,西,北,中
    * Frame默认的布局管理器。
    * GridLayout(网格布局管理器)
    * 规则的矩阵
    * CardLayout(卡片布局管理器)
    * 选项卡
    * GridBagLayout(网格包布局管理器)
    * 非规则的矩阵


    ###GUI(窗体监听)
    Frame f = new Frame("我的窗体");
    //事件源是窗体,把监听器注册到事件源上
    //事件对象传递给监听器
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    //退出虚拟机,关闭窗口
    System.exit(0);
    }
    });

    ###GUI(鼠标监听)
    ###GUI(键盘监听和键盘事件)
    ###GUI(动作监听)
    ###设计模式(适配器设计模式)(掌握)
    * a.什么是适配器
    * 在使用监听器的时候, 需要定义一个类事件监听器接口.
    * 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
    * 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
    * b.适配器原理
    * 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
    * 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
    * 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.


    ###GUI(需要知道的)
    * 事件处理
    * 事件: 用户的一个操作
    * 事件源: 被操作的组件
    * 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法

    public static void main(String[] args) {
            Frame f = new Frame("我的第一个窗口");
            f.setSize(400, 600);                            //设置窗体大小
            f.setLocation(500, 50);                            //设置窗体位置
            f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png"));
            Button b1 = new Button("按钮一");
            Button b2 = new Button("按钮二");
            f.add(b1);
            f.add(b2);
            f.setLayout(new FlowLayout());                    //设置布局管理器
            //f.addWindowListener(new MyWindowAdapter());
            f.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
            
            b1.addMouseListener(new MouseAdapter() {
                /*@Override
                public void mouseClicked(MouseEvent e) {    //单击
                    System.exit(0);
                }*/
                @Override
                public void mouseReleased(MouseEvent e) {    //释放
                    System.exit(0);
                }
            });
            
            b1.addKeyListener(new KeyAdapter() {
                @Override
                public void keyReleased(KeyEvent e) {
                    //System.exit(0);
                    //System.out.println(e.getKeyCode());
                    //if(e.getKeyCode() == 32) {
                    if(e.getKeyCode() == KeyEvent.VK_SPACE){
                        System.exit(0);
                    }
                }
            });
            
            b2.addActionListener(new ActionListener() {        //添加动作监听,应用场景就是暂停视频和播放视频
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
                }
            });
            f.setVisible(true);                                //设置窗体可见
        }
    
    }
    
    /*class MyWindowListener implements WindowListener {
    
        @Override
        public void windowOpened(WindowEvent e) {
        }
    
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    
        @Override
        public void windowClosed(WindowEvent e) {
            System.out.println("Closed");
        }
    
        @Override
        public void windowIconified(WindowEvent e) {
        }
    
        @Override
        public void windowDeiconified(WindowEvent e) {
        }
    
        @Override
        public void windowActivated(WindowEvent e) {
        }
    
        @Override
        public void windowDeactivated(WindowEvent e) {
        }
        
    }
    */
    
    /*class MyWindowAdapter extends WindowAdapter {
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }*/
  • 相关阅读:
    asp 后台批量管理程序
    面经
    单例模式(singleton)解析例子
    互联网产品经理必读书籍
    Struts2中的OGNL表达式
    阿里巴巴面经
    Servlet/JSP如何控制页面缓存于squid中
    Java陷阱一箩筐面试题集及解答
    阿里巴巴笔经http://bbs.yingjiesheng.com/forum.php?mod=viewthread&tid=696098&extra=page%3D1%26filter%3Dtypeid%26typeid%3D6356%26typeid%3D6356
    阿里巴巴java笔试
  • 原文地址:https://www.cnblogs.com/yimian/p/6573956.html
Copyright © 2011-2022 走看看