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(); } }结果:
相关文章推荐
- Android布局之GridLayout网格布局
- Android中使用GridLayout网格布局来制作简单的计算器App
- SWT(JFace)体验之GridLayout布局
- gridlayout 子view撑出屏幕
- ListView使用GridLayout代替LinearLayout
- JAVA笔记【20131221】
- UIcollectionView flowlayout 流式布局
- 一个框架10个按钮,嵌套Panel,同时Panel嵌套Panel。GridLayout,BorderLayout,
- ShowFlowLayout
- ShowGridLayout
- ShowBorderLayout
- Android流式布局FlowLayout的实现,Android布局的内部机制onMeasure、onLayout
- 自定义UICollectionViewFlowLayout
- android GridLayout 设置item间距方式
- Qt中使用GridLayout如何设置一个按钮占两个位置
- CollectionView卡片式翻页的实现
- Android自定义控件---打造不一样的FlowLayout
- java 布局之FlowLayout
- Java开发GUI之图形绘制
- Java开发GUI之绝对布局