import java.awt.*; //添加AWT库文件
import javax.swing.*; //添加Swing库文件
public class l extends JFrame{ //创建 LayoutTest继承于类JFrame
JButton btn1,btn2,btn3,btn4,btn5;
JPanel mainPan;
FlowLayout fLayout; //定义布局的方式
GridLayout gLayout; //定义布局的方式
BorderLayout bLayout; //定义布局的方式
CardLayout cLayout; //定义布局的方式
public l (String layoutstyle) { //定义构造函数
// TODO 自动生成的方法存根
super("布局方式:"+layoutstyle);
mainPan=new JPanel();
fLayout=new FlowLayout(FlowLayout.LEFT); // 创建4种布局方式的对象
gLayout = new GridLayout(3,2); // 创建4种布局方式的对象
bLayout=new BorderLayout(); // 创建4种布局方式的对象
cLayout=new CardLayout(10,10); // 创建4种布局方式的对象
if(layoutstyle=="fLayout") //判断采用哪一种布局方式
mainPan.setLayout(fLayout); //判断采用哪一种布局方式
else if (layoutstyle=="gLayout") //判断采用哪一种布局方式
mainPan.setLayout(gLayout); //判断采用哪一种布局方式
else if(layoutstyle=="bLayout")
mainPan.setLayout(bLayout);
else if(layoutstyle=="cLayout")
mainPan.setLayout(cLayout);
else
System.out.println("布局方式输入错误");//判断采用哪一种布局方式
getContentPane().add(mainPan);
btn1=new JButton("按钮1");
btn2=new JButton("按钮2");
btn3=new JButton("按钮3");
btn4=new JButton("按钮4");
btn5=new JButton("按钮5"); //创建5个按钮类的对象
if(layoutstyle=="fLayout"||layoutstyle=="fLayout");//定义FlowLayout或者CardLayout的布局方式
{
mainPan.add(btn1);
mainPan.add(btn2);
mainPan.add(btn3);
mainPan.add(btn4);
mainPan.add(btn5);
}
if(layoutstyle=="bLayout"||layoutstyle=="cLayout");//定义BorderLayout或者GridLayout的布局方式
{
mainPan.add(btn1,"East");
mainPan.add(btn2,"South");
mainPan.add(btn3,"West");
mainPan.add(btn4,"North");
mainPan.add(BorderLayout.CENTER,btn5);
}
setSize(250,150); //设置界面宽度和高度
setVisible(true); //设置界面的可见性
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置窗口关闭时的默认操作
}
public static void main(String args[]) {
// TODO Auto-generated method stub
new l("fLayout");
new l("gLayout");
new l("bLayout");
new l("cLayout");
}
}
运行结果如下:
知识要点:
1、布局管理器:在进行界面设计时,一般通过选择合适的控件,并精心设计这些控件的位置布局来实现用户界面。
2、FlowLayout布局(流式布局):这种布局将组件从上到下,从左到右依次摆放,每件均居中,它是Panel、Applet的默认布局。
3、BorderLayout布局(边界布局):这种布局将容器内的空间划分为东、南、西、北、中五个方位,布局是需要指明组件所在的方位,它是Window、Dialog、Frame的默认布局方式。
4、CardLayout布局(卡片布局):这种布局将组件像卡片一样放置在容器中,在某一时刻只有一个组件可见。
5、GridLayout布局(网络布局):这种布局类似于一个无框线的表格,每个单元格放置一个组件。
6、GridBagLayout布局(网络袋布局):这种布局类似于一个无框线的表格,每个单元格放一个组件,其放置方式是按组件加入的顺序从左到右、从上到下地摆放。
7、NULL布局(空布局):如果你不想用以上几种的布局,那么就可以采用NULL布局。
本文介绍了Java中常见的布局管理器,包括FlowLayout、BorderLayout、CardLayout、GridLayout和GridBagLayout,以及NULL布局。每个布局的特点和应用场景进行了详细阐述,帮助理解如何在GUI设计中合理安排组件位置。

3273

被折叠的 条评论
为什么被折叠?



