FlowLayout流式布局

package com.swing.layerout;

import java.awt.FlowLayout;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class FlowTest extends JFrame{
    
    
    public FlowTest(){
        
        init();
        
        
    }
    
    public void init(){
        
        this.setSize(400,300);
        this.setTitle("第一个JFrame窗体");
        //this.setIconImage(image);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//这里是简单的处理了用户点击关闭的事件,
                                                            //如果想复杂的处理话就要使用事件处理机制
        
        JButton jb1 = new JButton("这是第一个按钮");
        JLabel lbl1 = new JLabel("这是一个标签,它中间的字不是很多");
        JButton jb2 = new JButton("这是第二个按钮,名字一定要很长才可以");
        JLabel lbl2 = new JLabel("这...");
        JButton jb3 = new JButton("第三个");
        JButton jb4 = new JButton("这是第四个按钮,名字也非常的长");
        
        this.setLayout(new FlowLayout());//使用流式布局:特点,从左上角开始,根椐控件的大小根椐加入的顺序
           //依次进行显次,如果过长,将自动排入下一列
        
        
        this.add(jb2);
        this.add(jb4);
        this.add(jb3);
        this.add(jb1);
        
        this.add(lbl1);
        this.add(lbl2);
        
        this.setResizable(false);//不能改变窗体大小
        this.setVisible(true);
        this.addWindowFocusListener(new MyFocus()); //注册一个窗体焦点的监听器
        
    }
    
    
    public static void main(String[] args) {
        
        new FlowTest();
    }
    /*窗体三种事件:
     * 
     * 1. 焦点失去
     * 2. 开/关窗体
     * 3. 窗体状态,比如最大,最小,调整大小
     * 
     * 事件处理要用监听器来进行处理,监听器可以有四种写法
     * 1. 内置监听器(内部类的方式)        ------------------二选
     * 2. 自己监听自己,查看 TestJFrame1.java
     * 3. 外置监听器(外部类)TestJFrame2.java和MyFocus1.java
     * 4. 匿名类的使用(最麻烦的)TTestJFrame3.java ------------------首选
     *
     *  使用监听器可以发现监听器都是接口,实现其要实现多个方法,代码量大,代码不简洁
     *  所以可以使用适配器来解决监听器的问题,适配器其实就是空实现了三个接口的类
     *   WindowAdatper    TestJFrame5.java
     *
     *
     */
    
    //内部类,用处理于窗体焦点的监听器
    public class MyFocus implements WindowFocusListener{

        @Override
        public void windowGainedFocus(WindowEvent e) {
            // TODO Auto-generated method stub
            System.out.println("游戏正在进行.....");
        }

        @Override
        public void windowLostFocus(WindowEvent e) {
            // TODO Auto-generated method stub
            System.out.println("游戏暂停.....");
        }
        
        
        
    }

}

 

posted @ 2012-10-20 09:53  邹晟  阅读(888)  评论(0编辑  收藏  举报