Java学习 布局管理器之GridLayout(网格布局)
GridLayout( 网格布局)
具体请看 官方JavaApi:
GridLayout 将容器切割为棋盘一样m行n列的网格,每个网格可以放置一个组件,添加到容器的组件从左向右自上而下依次放置。
GridLayout 最大的特点是放置的组件自动占据网格的整个区域,每个组件的大小相同,不能改变组件大小,只能改变组件之间的水平和垂直间隔。
GridLayout类的常用构造方法如下: GridLayout(): 构建一个一行一列的GridLayout对象。 GridLayout(int rows, int cols): 用指定行数和列数去构建GridLayout对象。 GridLayout(int rows, int cols, int hgap, int vgap): 指定行数、列数、水平间隔和垂直间隔去构建GridLayout对象。
// 构建一个一行一列的GridLayout对象。 GridLayout(): // 用指定行数和列数去构建GridLayout对象。 GridLayout(int rows, int cols); // 用指定行数、列数、水平间隔和垂直间隔去构建GridLayout对象。 GridLayout(int rows, int cols, int hgap, int vgap);
示例1 如下 功能描述:本程序将当前JFrame设置为3行3列的GridLayout布局,然后依次放人9个按钮
package 、、、;
import javax.swing.*;
import java.awt.*;
public class GridLayoutTest extends JFrame {
public GridLayoutTest() {
setSize(300,180); // 设置窗口大小
setLayout(new GridLayout(3,3)); /// 设置网格布局并指定为 3行3列
for(int i=1 ; i<=9 ;i++) {
/// 加入9个按钮 按窗口大小平均分配
add(new JButton(""+i));
}
}
public static void main(String[] args) {
GridLayoutTest win = new GridLayoutTest();
win.setTitle("GirdLayout 网格布局");
win.setLocationRelativeTo(null);/// 设置窗口将置于屏幕的中央
win.setDefaultCloseOperation(EXIT_ON_CLOSE);///设置关闭窗口界面则结束程序
win.setVisible(true); /// 设置为可视(true) 若为false则不可视
}
}
运行图如下:
需注意的有 若组件数超过网格设定的个数,则布局管理器会自动增加网格个数,原则是保持行数不变,增加列数来完成布局
运行图如下:
示例2 利用网格布局做一个简单计算器
package ...;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class GridLayoutTest extends JFrame {
String[] s = {
"AC","+/-","%","/","7","8","9","*","4","5","6","-","1","2","3","+","0","sqrt",".","="};
public GridLayoutTest() {
setSize(350,220); // 设置窗口大小
JTextArea jt = new JTextArea(2,1); ///new 一个文本框
//new 一个面板 设置为网格布局并指定为 5行4列 水平间隔为4 垂直间隔为5
JPanel panel = new JPanel(new GridLayout(5,4,4,5));
setLayout(new BorderLayout());
for(int i=0 ; i<s.length ;i++) {
//加入计算器按钮 按窗口大小平均分配
panel.add(new JButton(s[i]));
}
getContentPane().add(jt,BorderLayout.NORTH); ///将文本框放在窗口 NORTH
getContentPane().add(panel,BorderLayout.CENTER); //将面板放在窗口 CENTER
setTitle("GirdLayout计算器布局");///标题
setLocationRelativeTo(null);/// 设置窗口将置于屏幕的中央
setDefaultCloseOperation(EXIT_ON_CLOSE);///设置关闭窗口界面则结束程序
setVisible(true); /// 设置为可视(true) 若为false则不可视
}
public static void main(String[] args) {
GridLayoutTest win = new GridLayoutTest();
}
}
运行图如下:
简单总结: 1、将容器像棋盘一样进行m行n列的网格分布 2、网格每行高度(每列宽度)相同,等于容器的高度(宽度)除以网格的行数(列数) 3、不能改变组件大小只能改变组件之间的水平和垂直间隔 4、添加到容器的组件 从左向右 自上而下 依次放置 5、当容器大小发生改变时,各组件的相对位置不变,大小会改变。
上一篇:
IDEA上Java项目控制台中文乱码
