Java SWING JFrame布局示例

时间:2020-02-23 14:37:16  来源:igfitidea点击:

本教程通过示例和用法解释了各种JFrmae布局。

说明

java awt包提供了许多不同的布局,例如边界布局、框布局、流布局、网格布局等,这些布局管理器用于以特定的方式排列组件。布局用于按特定顺序管理组件。下面是Java中几种常用布局的描述和示例。

边框布局

边框布局是最常用的布局之一。它是JFrame中的默认布局。它可以将组件定位在五个不同的区域,如顶部、底部、左侧、右侧和中心。在边框布局中,每个区域只包含一个组件。所有可用空间都放在中心。

用法:使用border布局初始化内容窗格,并通过add方法向其中添加组件,并将布局作为参数。

下面的示例显示了按边框布局排列的组件。

package theitroad.local;
import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class BorderLayoutExample {

	BorderLayoutExample(){
		JFrame frame = new JFrame("Border Layout");
		JButton button,button1, button2, button3,button4;
		button = new JButton("left");
		button1 = new JButton("right");
		button2 = new JButton("top");
		button3 = new JButton("bottom");
		button4 = new JButton("center");
		frame.add(button,BorderLayout.WEST);
		frame.add(button1, BorderLayout.EAST);
		frame.add(button2, BorderLayout.NORTH);
		frame.add(button3, BorderLayout.SOUTH);
		frame.add(button4, BorderLayout.CENTER);

		frame.setSize(300,300);  
		frame.setVisible(true);  
	}

	public  static void main(String[] args){
		new BorderLayoutExample();
	}
}

流程布局

流程布局是常用的布局。它是JPanel使用的默认布局。它用于将组件排列成一行或者一行,例如从左到右或者从右到左。它将组件排列在一行中,若并没有剩余空间,剩余的组件将转到下一行。Align属性确定组件的对齐方式为左对齐、右对齐、居中对齐等。

使用:使用设置JFrame布局JFrame.setLayout(布局),作为参数的道次流布局。

下面的示例显示了在流布局中排列的组件

package theitroad.local;

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class FlowLayoutExample {

	FlowLayoutExample(){
		JFrame frame = new JFrame("Flow Layout");
		JButton button,button1, button2, button3,button4;
		button = new JButton("button 1");
		button1 = new JButton("button 2");
		button2 = new JButton("button 3");
		button3 = new JButton("button 4");
		button4 = new JButton("button 5");
		frame.add(button);
		frame.add(button1);
		frame.add(button2);
		frame.add(button3);
		frame.add(button4);
		frame.setLayout(new FlowLayout());
		frame.setSize(300,300);  
		frame.setVisible(true);  

	}
	public static void main(String[] args) {
		new FlowLayoutExample();

	}

}

网格布局

网格布局在矩形网格中排列组件。它在单元中排列组件,并且每个单元具有相同的大小。组件被放置在列和行中。GridLayout(int rows,int columns)接受两个参数,即column are row。

使用:使用设置JFrame布局JFrame.setLayout(布局),将栅格布局作为参数传递。

下面的示例显示了按网格布局排列的组件(具有2行和3列)。

package theitroad.local;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class gridLayoutExample {

	gridLayoutExample(){
			JFrame frame = new JFrame("Flow Layout");
			JButton button,button1, button2, button3,button4;
			button = new JButton("button 1");
			button1 = new JButton("button 2");
			button2 = new JButton("button 3");
			button3 = new JButton("button 4");
			button4 = new JButton("button 5");
			frame.add(button);
			frame.add(button1);
			frame.add(button2);
			frame.add(button3);
			frame.add(button4);
			frame.setLayout(new GridLayout(2,3));
			frame.setSize(300,300);  
			frame.setVisible(true);  

		}
		public static void main(String[] args) {
			new gridLayoutExample();

		}

	}