• 第七周学习视频(一)


    一、事件处理的实施

    组件.addxxxListener()方法的后台实现机制?
    eg.JButton对象包含名为listenerList(监听者列表)的EventListenerList类型的实例变量。
    JButton的事件处理对象实现了ActionLister接口中所定义的actionPerformed方法。

    二、 事件监听器接口(EventListener Interface)与事件监听器

    事件处理方法都被定义在继承了 java.util.EventListener类的 EventListener接口中 。
    任何一个类如果想操作在EventListener接口中定义的方法,都必须实现这个接口,也 就是成为事件监听者 。

    三、GUI事件处理关键过程

    (1) 为将要产生事件的组件注册监听者。具体:调用事件源本身的方法,如 addActionListener(…)方法注册监听者。
    (2) 为监听者实现事件处理方法。 具体:实现监听接口中所定义的方法。

    四、布局管理

    Java提供了几个布局管理器用于定位组件。
    FlowLayout(流式布局)、BorderLayout (边界布局)、GridLayout(网格布局) 、BoxLayout(盒式布局)、CardLayout (卡片布局)、GridBagLayout(网格包布局)。

    五、FlowLayout布局管理器(流式布局)

    是 java.awt.Applet、java.awt.Panel 和 javax.swing.JPanel的默认布局方式。
    JPanel(面板容器)默认的布局管理器是 FlowLayout。


    每行组件的对齐方式可以是: 左对齐、中间(默认对齐方式)和右对齐。
    是 java.awt.Applet、java.awt.Panel 和 javax.swing.JPanel的默认布局方式。


    FlowLayout的构造函数有:
    FlowLayout( ):生成一个默认的流式布局
    FlowLayout(int alignment):可以设定每一 行组件的对齐方式
    FlowLayout(int alignment,int horz,int vert):可以设定组件间的水平和垂直距离


    类FlowLayout 对齐方法(改变对齐方式):
    setAlignment( position_CONSTANT )
    FlowLayout.LEFT、FlowLayout.CENTER、FlowLayout.RIGHT


    eg.Container container = frame.getContentPane();//获得JFrame的内容面板
    FlowLayout layout = new FlowLayout();
    container.setLaylout(layout);//设置窗口布局方式
    frame.add(container);

    leftJButton.addActionListener(
              new ActionListener() // 匿名内部类
              {
                 public void actionPerformed( ActionEvent event )
                 {
                   layout.setAlignment( FlowLayout. LEFT );
                    // 将 FlowLayout 的对其方式改为左对齐。 
    
                   layout.layoutContainer( container );
                    // 指定 Jframe 应当根据调整后的布局重新安排(刷新),或使用container.validate();
                 }
              } // end anonymous inner class
           ); 
    

    六、BorderLayout布局管理器(边界布局)

    是JFrame默认的布局管理器,将组件安排成5个区域(NORTH、SOUTH、EAST、 WEST、CENTER)。
    将容器限制成最多包含5个组件,每个区域一个。
    位于每个区域中的组件可以是包含其他组件的容器。


    BorderLayout所定义的构造函数:
    BorderLayout( ):生成默认的边界布局
    BorderLayout(int horz,int vert): 可以设定组件间的水平和垂直距离,这两个值默认值为0


    添加组件:myContainer.add( component, position )
    component –> 需要加入到容器中的组件
    positions –> (BorderLayout.NORTH/SOUTH/EAST/WEST/CENTER)


    BorderLayout布局中,当四周区域都没有组件的时候,CENTER区域会占满四周的空间。

    七、GridLayout布局管理器(网格布局)

    GridLayout的构造函数如下:
    GridLayout():生成一个单列的网格布局
    GridLayout(int row,int col):生成一个设定行数和列数的网格布局
    GridLayout(int row, int col, int horz, int vert):可以设置组件之间的水平和垂直间隔
    eg.frame.setLayout(new GridLayout(2,3));

    八、CardLayout布局管理器

    CardLayout的布局方式有点象码“扑克牌”。
    一个组件压在另一个组件的上面,所以每次一般只能看到一个组件。

  • 相关阅读:
    BZOJ 1029 & 丝帛贪心
    BZOJ 1831 & 就是一个DP....
    HDU2138 & 米勒拉宾模板
    BZOJ 2733 & splay的合并
    hdu Matrix Multiplication 写一个类似哈希函数的东西一切就解决了。
    hdu Cow Sorting 数学题(值得思考)
    Find them, Catch them 并查集
    Buy Tickets 简单的线段树&&反向更新
    Who Gets the Most Candies? 线段树的建立更新和反素数
    Apple Tree 有时间戳的树状数组
  • 原文地址:https://www.cnblogs.com/caihan/p/12607537.html
Copyright © 2020-2023  润新知