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);
	}

}





Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐