Java布局管理器组件(2)

当向某个区域内添加控件时,就要将代表区域的常数作为第2个参数传递给add方法参数,而将需要添加到某个区域的控件作为add方法的第1个参数,如add(组件名称,方位)。可参考下面BorderLayout实例代码:

import Javax.swing.*; import java.awt.*; /** * BorderLayout * Created by veione on 5/9/16. */ public class BorderLayoutCase { private static final int WIDTH = 300; private static final int HEIGHT = 200; public static void main(String[] args) { JFrame frame = new JFrame("BorderLayout"); frame.setSize(WIDTH, HEIGHT); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Tools.centerWindow(frame); JPanel contentPane = new JPanel(); frame.setContentPane(contentPane); JButton btnLife = new JButton("生活"); JButton btnWork = new JButton("工作"); JButton btnSleep = new JButton("睡觉"); JButton btnShopping = new JButton("购物"); JButton btnFood = new JButton("饮食"); //创建一个布局管理器,将中间容器设置为此布局管理器 BorderLayout borderLayout = new BorderLayout(); frame.setLayout(borderLayout); contentPane.add(btnLife, BorderLayout.NORTH); contentPane.add(btnWork, BorderLayout.SOUTH); contentPane.add(btnSleep, BorderLayout.EAST); contentPane.add(btnShopping, BorderLayout.WEST); contentPane.add(btnFood, BorderLayout.CENTER); frame.setVisible(true); } }

以上代码运行之后,如下图所示:

BorderLayout运行结果图

FlowLayout

这种布局管理器的策略也非常简单,它是按照控件加入的先后顺序从左到右排列,一行排满了,再换下一行,然后继续从左到右排列。每一行的组件都是居中排列的。另外,如果有些按钮看不到,可以使用pack()自动调整Frame的大小,使得所有控件都显示出来。FlowLayout布局管理器同样是通过先创建对象、再利用其内置方法和变量来布局的组件,下表所示是其构造其说明。

布局管理器的构造器说明
FlowLayout()   构造一个FlowLayout对象,它是居中对齐的,默认的水平和垂直间隙是5个单位  
FlowLayout(int align)   构造一个FlowLayout对象,默认的水平和垂直间隙是5个单位  
FlowLayout(int align,int h, int v)   创建一个新的流布局管理器,它具有指定的对其方式以及指定的水平和垂直间隙  

FlowLayout代码示例:

import javax.swing.*; import java.awt.*; /** * Created by veione on 5/9/16. */ public class SpringLayoutCase { private static final int WIDTH=300; private static final int HEIGHT=200; public static void main(String[] args) { JFrame frame=new JFrame("SpringLayout"); frame.setSize(WIDTH,HEIGHT); Tools.centerWindow(frame); frame.setDefaultCloseOperation(Tools.EXIT_ON_CLOSE); JPanel contentPane=new JPanel(); frame.setContentPane(contentPane); JButton btnLife = new JButton("生活"); JButton btnWork = new JButton("工作"); JButton btnSleep = new JButton("睡觉"); JButton btnShopping = new JButton("购物"); JButton btnFood = new JButton("饮食"); //设置内容面板布局管理器为FlowLayout contentPane.setLayout(new FlowLayout()); contentPane.add(btnLife); contentPane.add(btnWork); contentPane.add(btnShopping); contentPane.add(btnSleep); contentPane.add(btnFood); frame.pack(); frame.setVisible(true); } }

以上代码运行之后如下图:

GridLayout

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/29309af9c4ff3a48525f10b652d17df8.html