java GUI学习

1.需要设计如下布局

image

2.根据实际布局,初始化Frame

Frame frame = new Frame();
        frame.setTitle("布局测试");
        frame.setBounds(50,50,600,600);
        frame.setLayout(new GridLayout(2,1));

3.初始化Panel

//划分上下两部分
        Panel top_panel = new Panel(new BorderLayout());
        Panel bottom_panel = new Panel(new BorderLayout());

        //设置背景
        top_panel.setBackground(Color.RED);
        bottom_panel.setBackground(Color.GREEN);

        //上部分左右初始化
        top_panel.add(new Button("button1"),BorderLayout.EAST);
        top_panel.add(new Button("button2"),BorderLayout.WEST);

4.添加BUTTON

/上部分中间初始化
        Panel top_center_panel = new Panel(new GridLayout(2, 1));
        top_center_panel.add(new Button("button3"));
        top_center_panel.add(new Button("button4"));
        top_panel.add(top_center_panel,BorderLayout.CENTER);


        //小部分左右初始化
        bottom_panel.add(new Button("button5"),BorderLayout.EAST);
        bottom_panel.add(new Button("button6"),BorderLayout.WEST);

        //小部分中间初始化
        Panel bottom_center_panel = new Panel(new GridLayout(2, 2));
        bottom_center_panel.add(new Button("button7"));
        bottom_center_panel.add(new Button("button8"));
        bottom_center_panel.add(new Button("button9"));
        bottom_center_panel.add(new Button("button10"));
        bottom_panel.add(bottom_center_panel,BorderLayout.CENTER);

5. panel添加到frame

//添加上下两部分
        frame.add(top_panel);
        frame.add(bottom_panel);

        //设置框架可视化
        frame.setVisible(true);

        //设置退出监听事假
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
点击查看完整代码
package org.example;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class guitest {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setTitle("布局测试");
        frame.setBounds(50,50,600,600);
        frame.setLayout(new GridLayout(2,1));

        //划分上下两部分
        Panel top_panel = new Panel(new BorderLayout());
        Panel bottom_panel = new Panel(new BorderLayout());

        //设置背景
        top_panel.setBackground(Color.RED);
        bottom_panel.setBackground(Color.GREEN);

        //上部分左右初始化
        top_panel.add(new Button("button1"),BorderLayout.EAST);
        top_panel.add(new Button("button2"),BorderLayout.WEST);

        //上部分中间初始化
        Panel top_center_panel = new Panel(new GridLayout(2, 1));
        top_center_panel.add(new Button("button3"));
        top_center_panel.add(new Button("button4"));
        top_panel.add(top_center_panel,BorderLayout.CENTER);


        //小部分左右初始化
        bottom_panel.add(new Button("button5"),BorderLayout.EAST);
        bottom_panel.add(new Button("button6"),BorderLayout.WEST);

        //小部分中间初始化
        Panel bottom_center_panel = new Panel(new GridLayout(2, 2));
        bottom_center_panel.add(new Button("button7"));
        bottom_center_panel.add(new Button("button8"));
        bottom_center_panel.add(new Button("button9"));
        bottom_center_panel.add(new Button("button10"));
        bottom_panel.add(bottom_center_panel,BorderLayout.CENTER);

        //添加上下两部分
        frame.add(top_panel);
        frame.add(bottom_panel);

        //设置框架可视化
        frame.setVisible(true);

        //设置退出监听事假
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

6.实际效果

image

posted @ 2022-11-08 23:55  疾风劲草鹰  阅读(24)  评论(0)    收藏  举报