1.FlowLayout
最简单的布局管理器,使用该框架,按照组件添加的顺序,从左到右的将组件排列在容器中。
当一行放满后,开始新的一行。可以使用三个常量(用来指定组建的对齐方式):
FlowLayout.RIGHT
FlowLayout.CENTER
FlowLayout.LEFT
package chapter12; import javax.swing.JFrame; import java.awt.FlowLayout; import javax.swing.JLabel;// import javax.swing.JTextField;//像素长 @SuppressWarnings("serial") public class ShowFlowLayout extends JFrame{ public ShowFlowLayout(){ setLayout(new FlowLayout(FlowLayout.RIGHT,10,20)); /* 等价于 * 注释部分创建了 对FlowLayout的对象layout的 显示引用,这个显示引用是没有必要的,因为该对象在showflowlayout类中并不是直接引用 FlowLayout layout = new FlowLayout(FlowLayout.RIGHT,10,20); setLayout(layout); */ add(new JLabel("First name")); add(new JTextField(20)); add(new JLabel("MI")); add(new JTextField(1)); add(new JLabel("last name")); add(new JTextField(8)); } public static void main(String[] args) { ShowFlowLayout frame = new ShowFlowLayout(); frame.setTitle("Showflowlayout"); frame.setSize(600, 600); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
2.GridLayout管理器
/*
* 以网格的形式管理组件。
* 组件按照他们添加的顺序从左到右排列。
* 行数或者列数都可以为0 但不能都为0
* 如果一个为0 另一个不为0 则不为0的那一部分的行或列已经被固定 为0的行或列被布局管理器动态的决定。
* ex:一个网格有0行3列的10个组件 GridLayout 会为其分配3个固定的列 和 4行 最后一行只包含一列
* 如果 都不为 0 则 行为主导参数 行是固定的 列会动态的分配
* 如果改变这个框架的大小,按钮的布局保持不变
*/
package chapter12; /* * 以网格的形式管理组件。 * 组件按照他们添加的顺序从左到右排列。 * 行数或者列数都可以为0 但不能都为0 * 如果一个为0 另一个不为0 则不为0的那一部分的行或列已经被固定 为0的行或列被布局管理器动态的决定。 * ex:一个网格有0行3列的10个组件 GridLayout 会为其分配3个固定的列 和 4行 最后一行只包含一列 * 如果 都不为 0 则 行为主导参数 行是固定的 列会动态的分配 */ import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JFrame; import java.awt.GridLayout; public class ShowGridLayout extends JFrame { public ShowGridLayout() { // Set GridLayout, 3 rows, 2 columns, and gaps 5 between // components horizontally and vertically setLayout(new GridLayout(3, 2, 5, 5)); // Add labels and text fields to the frame add(new JLabel("First Name")); add(new JTextField(8)); add(new JLabel("MI")); add(new JTextField(1)); add(new JLabel("Last Name")); add(new JTextField(8)); } public static void main(String[] args) { ShowGridLayout frame = new ShowGridLayout(); frame.setTitle("ShowGridLayout"); frame.setSize(200, 125); frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
3.borderlayout
package chapter12; /* * Borderlayout 将容器分成五个区域 */ import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; @SuppressWarnings("serial") public class ShowBorderLayout extends JFrame{ public ShowBorderLayout(){ setLayout(new BorderLayout(5,10)); add(new JButton("EAST"),BorderLayout.EAST); add(new JButton("south"),BorderLayout.SOUTH); add(new JButton("WEST"),BorderLayout.WEST); add(new JButton("north"),BorderLayout.NORTH); add(new JButton("center"),BorderLayout.CENTER); } public static void main(String[] args) { ShowBorderLayout frame = new ShowBorderLayout(); frame.setTitle("showborderlayout"); frame.setSize(300,200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
时间: 2024-10-13 02:49:23