Java学习系列之GUI布局练习
本次要求绘制几个板块,布局如下所示
对上述结构分析可以知道,总体上有一个矩形构成,矩形分为上下两部分。可以采用GirdLayout实现2行1列的布局。
对上下两部分分开进行分析,对上面部分的分析如下,上面可以分为两部分,当然这两部分可以由另个面板来实现,具体的布置可以布置在面板上。再回到布置上,大的来说由两侧的和中间构成,对于两侧可以使用BorderLayout实现,分别为BorderLayout.EAST和BorderLayout.WEST这两个可以实现,对于中间部分,可以居中放置一个penal,在penal上实现2行1列的布局,使用的关键字仍然为GirdLayout。到此即可实现上面的布置,
对于下半部分的布局,左右两侧的实现可以同上,中间部分的布局参数发生变化,改为2行2列的即可。
代码实现如下:
package com.company;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class GUI03 {
public static void main(String[] args) {
/*
1.设置Frame的基本参数
*/
Frame frame=new Frame("GUI界面练习");
frame.setVisible(true);
frame.setLocation(200,200);
frame.setSize(800,800);
frame.setBackground(new Color(2,2,2));
//2.实现上下两部分的分割,2行1列
frame.setLayout(new GridLayout(2,1));
//3.设置Panel的基本参数
Panel p1=new Panel(new BorderLayout());
Panel p2=new Panel(new GridLayout(2,2));
Panel p3=new Panel(new BorderLayout());
Panel p4=new Panel(new GridLayout(2,2));
//4.添加操作面板
frame.add(p1);
frame.add(p3);
//5.先将P2添加到P1的中间位置,剩余的两边再添加按钮到操作面板上
p1.add(p2,BorderLayout.CENTER);//添加到中间位置
p1.add(new Button("Button3"),BorderLayout.WEST);
p1.add(new Button(("Button4")),BorderLayout.EAST);
p2.add(new Button("Button1"));
p2.add(new Button("Button2"));
//6.实现下半部分的布局,仍然使用两个penal来实现
p3.add(p4,BorderLayout.CENTER);
p3.add(new Button("Button5"),BorderLayout.EAST);
p3.add(new Button("Button6"),BorderLayout.WEST);
//7.将p4添加到p3面板上,实现居中操作
//8.对p4添加按钮
for (int i = 7; i <=10; i++) {
p4.add(new Button("Button"+i));
}
//9.监听
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
效果如下:
总体上完成了布局,吐槽一句,这种方法出的有点丑
每段都有注释