FlowLayout:
流式布局,随着JFrame的大小而流动 流布局用于安排有向流中的组件,这非常类似于段落中的文本行
例如:
- package 三种布局;
- import javax.swing.*;
- import java.awt.*;
- public class Flow extends JFrame{
- public static void main(String[] args) {
- Flow lay = new Flow();
- lay.go();
- }
- public void go(){
- //this.setBackground(Color.RED);
- this.setTitle("Flowlayout布局");
- this.setSize(400,200);
- this.setDefaultCloseOperation(3);
- //设置布局
- FlowLayout layout = new FlowLayout();
- this.setLayout(layout);
- Label label = new Label("密码框");
- this.add(label);
- JTextField field = new JTextField(20);
- this.add(field);
- Label labe = new Label("密码");
- this.add(labe);
- JTextField fiel = new JTextField(20);
- this.add(fiel);
- this.setVisible(true);
- }
- }
- /*
- 运行结果 在下面的Fow1 图片
- 当把fow1 放大时 结果为fow2图片
- */
BorderLayout:
这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH
、SOUTH
、EAST
、WEST
、CENTER
。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一,
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.Font;
- import javax.swing.*;
- /**
- * 定义一个border的布局
- * @author Administrator
- *
- */
- public class border extends JFrame{
- public static void main(String[] args) {
- border border1 = new border();
- border1.go();
- }
- public void go(){
- //在设置五个按钮
- JButton east = new JButton("East");
- JButton west = new JButton("west");
- JButton north = new JButton("north");
- JButton south = new JButton("south");
- JButton center = new JButton("center");
- //将按钮分别添加到五个方向
- Container c = this.getContentPane();
- c.add(BorderLayout.EAST,east);
- Container c1 =this.getContentPane();
- c1.add(BorderLayout.WEST,west);
- this.getContentPane().add(BorderLayout.NORTH,north);
- this.getContentPane().add(BorderLayout.SOUTH,south);
- this.getContentPane().add(BorderLayout.CENTER,center);
- //设置字体大小
- Font bigFont = new Font("serif",Font.BOLD,20);
- east.setFont(bigFont);
- Font bigFont1 = new Font("serif",Font.BOLD,20);
- west.setFont(bigFont1);
- Font bigFont2 = new Font("serif",Font.BOLD,20);
- north.setFont(bigFont2);
- Font bigFont3= new Font("serif",Font.BOLD,20);
- south.setFont(bigFont3);
- Font bigFont4 = new Font("serif",Font.BOLD,20);
- center.setFont(bigFont4);
- this.setSize(400,400);
- this.setDefaultCloseOperation(3);
- this.setVisible(true);
- }
- }
BoxLayout:
允许垂直或水平布置多个组件的布局管理器。这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列。
用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂。该图显示了两个水平排列的面板,每个面板都包含 3 个垂直排列的组件。
BoxLayout 管理器是用 axis 参数构造的,该参数指定了将进行的布局类型。有四个选择:
X_AXIS:从左到右水平布置组件。
Y_AXIS:从上到下垂直布置组件。
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Container;
- import javax.swing.*;
- public class boxlayout {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- boxlayout layout = new boxlayout();
- layout.go();
- }
- public void go(){
- JFrame frame = new JFrame();
- JPanel panel = new JPanel();
- panel.setBackground(Color.RED);
- //设盒子的布局
- BoxLayout layout = new BoxLayout(panel, 0) ;
- panel.setLayout(layout);
- //panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
- JButton button = new JButton("点击");
- JButton button1 = new JButton("ok");
- panel.add(button);
- panel.add(button1);
- //容器初始化,添加组件
- frame.getContentPane().add(BorderLayout.EAST,panel);
- //Contariner c = frame.getContentPane();
- //c.add(<span style="font-size: 1em; line-height: 1.5;">BorderLayout.EAST,panel</span><span style="font-size: 1em; line-height: 1.5;">);</span>
- frame.setSize(300,300);
- frame.setVisible(true);
- }
布局与布局之间可以嵌套