您的位置:首页 > 编程语言 > Java开发

java界面,BorderLayout,GridLayout,FlowLayout

2016-06-07 16:18 453 查看

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

}
结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息