【JAVA语言程序设计基础篇】--图形用户界面基础--三种基本的布局管理器
1.FlowLayout 最简单的布局管理器,使用该框架,按照组件添加的顺序,从左到右的将组件排列在容器中。当一行放满后,开始新的一行。可以使用三个常量(用来指定组建的对齐方式):FlowLayout.RIGHTFlowLayout.CENTERFlowLayout.LEFTpackage chapter12;import javax.swing.JFrame
·
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);
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)