• 欢迎光临~

java_day19

开发技术 开发技术 2022-10-25 次浏览

Java基础

GUI编程

核心技术:Swing、AWT

现在GUI并不流行 因为其界面不美观、需要依赖jre环境

AWT

frame的使用

/**
 * frame的使用
 * @author xue
 */
public class Demo1 {


    

    public static void main(String[] args) {
        //创建frame对象
        Frame fm1 = new Frame("第一个界面窗口");

        fm1.setVisible(true);//设置可见性

        fm1.setSize(500,500);//设置窗口大小

        fm1.setBackground(new Color(24, 129, 148));//设置背景颜色

        fm1.setLocation(400,400);//设置位置 0,0在屏幕的左上角处

        fm1.setResizable(false); //设置窗口大小不可改变


    }
 
}


public class Demo2 {
    public static void main(String[] args) {
        new MyFrame(100,100,100,100,Color.BLACK);
        new MyFrame(200,100,100,100,Color.BLACK);

    }
}

class MyFrame extends Frame{
    static int id = 0; //窗口计数器

    public MyFrame(int x,int y,int w,int h,Color co) {
        super("窗口"+(++id));
        setVisible(true);
        setBounds(x,y,w,h);
        setBackground(co);
    }
}

Panel的使用 并添加关闭窗口监听事件

/**
 * Panel的使用
 * Panel是一个空间 不能单独存在
 * @author xue
 */
public class Demo3 {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Panel panel = new Panel();

        frame.setLayout(null); //设置布局

        frame.setBounds(300,300,500,500);//设置窗口位置、大小

        frame.setBackground(Color.CYAN);//窗口背景颜色

        panel.setBounds(50,50,200,200);//设置面板位置、大小
        panel.setBackground(Color.GRAY);

        frame.add(panel);//将面板放入窗口中

        frame.setVisible(true);

        //添加监听事件
        frame.addWindowListener(new WindowAdapter() {
            //点击窗口关闭按钮事件
            @Override
            public void windowClosing(WindowEvent e) {
                //退出程序
                System.exit(0);
            }
        });

    }
}

布局管理器

  • 流式布局

  • 东西南北中

  • 表格式

    public class Demo4 {
        public static void main(String[] args) {
            Frame frame = new Frame("表格布局");
            Button but1 = new Button("bu1");
            but1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
                }
            });
    
            Button but2 = new Button("bu2");
            Button but3 = new Button("bu3");
            Button but4 = new Button("bu4");
            Button but5 = new Button("bu5");
            Button but6 = new Button("bu6");
    
            frame.setLayout(new GridLayout(2,3));
            frame.add(but1);
            frame.add(but2);
            frame.add(but3);
            frame.add(but4);
            frame.add(but5);
            frame.add(but6);
            frame.setBounds(500,500,500,500);
            frame.setVisible(true);
    
    
        }
    
        //流式布局
        public void testLayout(){
            Frame frame = new Frame("流式布局的操作");
    
            //创建按钮组件
            Button butt1 = new Button("bu1");
            Button butt2 = new Button("bu2");
            Button butt3 = new Button("bu3");
    
            //设置流式布局
    //        frame.setLayout(new FlowLayout());//指的是组件在窗口中的布局默认居中FlowLayout.CENTER
    //        frame.setLayout(new FlowLayout(FlowLayout.RIGHT));//按钮靠右
    //        frame.setLayout(new FlowLayout(FlowLayout.LEFT));//按钮靠左
    //        frame.setLayout(new FlowLayout(FlowLayout.LEADING));//从开始的方向对齐 同靠左
    //        frame.setLayout(new FlowLayout(FlowLayout.TRAILING));//从结束的方向对齐 同靠右
    
            //东西南北中
    
    
    
            frame.setSize(300,300);
            frame.setVisible(true);
            //添加按钮至窗口
            frame.add(butt1);
            frame.add(butt2);
            frame.add(butt3);
    
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        }
    
        //东西南北中
        public void testLayout2() {
            Frame frame = new Frame("东西南北中");
    
            Button but1 = new Button("east");
            Button but2 = new Button("west");
            Button but3 = new Button("south");
            Button but4 = new Button("north");
            Button but5 = new Button("centor");
    
            frame.add(but1,BorderLayout.EAST);
            frame.add(but2,BorderLayout.WEST);
            frame.add(but3,BorderLayout.SOUTH);
            frame.add(but4,BorderLayout.NORTH);
            frame.add(but5,BorderLayout.CENTER);
    
            frame.setVisible(true);
            frame.setBounds(500,500,500,500);
        }
    
        //表格布局
        public void testLayout3() {
    
        }
    
    }
    

练习

生成这样的布局

java_day19

public class Pratice {
    public static void main(String[] args) {
        Frame frame1 = new Frame();
        Panel pa1 = new Panel(new BorderLayout());
        Panel pa2 = new Panel(new GridLayout(2,1));
        Panel pa3 = new Panel(new BorderLayout());
        Panel pa4 = new Panel(new GridLayout(2,2));


        Button but1 = new Button("but1");
        Button but2 = new Button("but2");
        Button but3 = new Button("but3");
        Button but4 = new Button("but4");
        Button but5 = new Button("but5");
        Button but6 = new Button("but6");
        Button but7 = new Button("but7");
        Button but8 = new Button("but8");
        Button but9 = new Button("but9");
        Button but10 = new Button("but10");

        frame1.setLayout(new GridLayout(2,1));
        frame1.setSize(1000,800);
        frame1.setVisible(true);

        pa2.add(but3);
        pa2.add(but4);

        pa1.add(but1,BorderLayout.WEST);
        pa1.add(pa2,BorderLayout.CENTER);
        pa1.add(but2,BorderLayout.EAST);

        pa4.add(but7);
        pa4.add(but8);
        pa4.add(but9);
        pa4.add(but10);

        pa3.add(but5,BorderLayout.WEST);
        pa3.add(pa4,BorderLayout.CENTER);
        pa3.add(but6,BorderLayout.EAST);

        frame1.add(pa1);
        frame1.add(pa3);

        testLayout();
        
    }

    public static void testLayout() {
        Frame frame = new Frame();
        frame.setLayout(new GridLayout(1,3));
        frame.setSize(1000,800);
        frame.setVisible(true);

        Panel pa1 = new Panel(new GridLayout(2,1));
        Panel pa2 = new Panel(new GridLayout(2,1));
        Panel pa3 = new Panel(new GridLayout(2,1));
        Panel pa4 = new Panel(new GridLayout(2,2));
        Panel pa5 = new Panel(new GridLayout(2,1));

        pa1.add(new Button("b1"));
        pa1.add(new Button("b2"));
        pa3.add(new Button("b3"));
        pa3.add(new Button("b4"));
        pa4.add(new Button("b5"));
        pa4.add(new Button("b6"));
        pa4.add(new Button("b7"));
        pa4.add(new Button("b8"));

        pa2.add(pa3);
        pa2.add(pa4);

        pa5.add(new Button("b9"));
        pa5.add(new Button("b10"));

        frame.add(pa1);
        frame.add(pa2);
        frame.add(pa5);
    }
}
程序员灯塔
转载请注明原文链接:java_day19
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com