java界面,BorderLayout,GridLayout,FlowLayout

BorderLayout类

BorderLayout将版面分成EAST(东),SOUTH(南),WEST(西),NORTH(北),CENTER(中),五个区域块,并语序将组件放在指定的区域块内,因为将组件放入BorderLayout版面内会造成组件变形,所以不适合加入JButton(按钮)这类组件,而比较合适JPanel(面板);


package hhxy.Test;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BorderLayoutEx {
 JFrame frame;
 public BorderLayoutEx(){
	 frame=new JFrame("xx书店信息系统");
	 Image image=Toolkit.getDefaultToolkit().createImage("a1.jpg");
	 frame.setIconImage(image);//把图片添加到标题栏
	 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭
	 frame.setContentPane(createContentPane());//创建ContentPane
	 frame.setLocation(400,250);//设置窗口弹出的位置
	 frame.setSize(300, 250);//设置窗口的大小
	 frame.setVisible(true);//设置组件可见
 }

	private Container createContentPane() {
	Container contentPane=new Container();
	//将窗口版面设置为BorderLayout,并设置内部组件间的水平距离为5像素,垂直为10像素
	contentPane.setLayout(new BorderLayout(5, 10));
	JPanel[] panel=new JPanel[5];//创建面板对象
	for(int i=0; i<panel.length;i++){
		panel[i]=new JPanel();
		panel[i].setBackground(Color.red);
	}
	contentPane.add(panel[0],BorderLayout.EAST);//将组件放在指定区域
	contentPane.add(panel[1],BorderLayout.SOUTH);//将组件放在指定区域
	contentPane.add(panel[2],BorderLayout.WEST);//将组件放在指定区域
	contentPane.add(panel[3],BorderLayout.NORTH);//将组件放在指定区域
	contentPane.add(panel[4],BorderLayout.CENTER);//将组件放在指定区域
	return contentPane;
}
	public static void main(String[] args) {
		new BorderLayoutEx();
	}
}
输出结果:


GridLayout类

GridLayout所切割出来的版面就如同表格版整齐,加入的组件会按照顺序从左到右从上到下摆放,所以无法直接指定要摆放的区域,组件放入后会变成方形,所以不适合加入JButton这类组件,适合加入JPanel。

代码如下:

package hhxy.Test;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GridLayoutEx {
    JFrame frame;
    public GridLayoutEx(){
    	frame=new JFrame("XX图书信息系统");
    	frame.setContentPane(createContentPane());
    	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	frame.setLocation(350, 200);
    	frame.setSize(400,250);
    	frame.setVisible(true);
    }
	private Container createContentPane() {
		Container contentPane=new Container();
		//将窗口版面设置成2X3的表格型;并且设定组件间的水平距离为5像素,垂直为10像素
		contentPane.setLayout(new GridLayout(2,3,5,10));
		JPanel[] panel=new JPanel[5];
		for(int i=0;i<panel.length;i++){
			panel[i]=new JPanel();
			panel[i].setBackground(Color.green);
			contentPane.add(panel[i]);
		}
		return contentPane;
	}
	public static void main(String[] args) {
          new GridLayoutEx();
	}

}
结果如图:


FlowLayout类

FlowLayout的配置方式也是从左到右,从上到下,排列,如果窗口宽度足够,会将所有的语速放在同一行;如果苦读不够,自动换行。FlowLayout默认组件居中对齐,也可以按照需求左对齐或者右对齐 ,加入FlowLayout版面的组件也是按照顺序摆放的,所以也无法直接指定要摆放的位置。组价不会变形可以加入JButton这类组件。
代码:
package hhxy.Test;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class FlowLayoutEx {
    JFrame frame;
    
	public FlowLayoutEx(){
	  frame =new JFrame("xx图书信息系统");
	  frame.setContentPane(createPane());
	  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  frame.setSize(500,250);
	  frame.setLocation(400, 250);
	  frame.setVisible(true);
	}
	private Container createPane() {
		Container contentPane=new Container();
		contentPane.setLayout(new FlowLayout(FlowLayout.LEFT,5,10));
		JButton[] button=new JButton[5];
		for(int i=0;i<button.length;i++){
			button[i]=new JButton("button"+i);
			contentPane.add(button[i]);
		}
		return contentPane;
	}
	public static void main(String[] args) {
		new FlowLayoutEx();
	}

}
结果:



发布了92 篇原创文章 · 获赞 38 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章