十八、java-GUI之网格布局(GridLayout)
来源:互联网 发布:淘宝登陆界面 编辑:程序博客网 时间:2024/05/17 10:07
GridLayout(网格布局)
1、GridLayout布局特征
网格布局特点:
1. 使容器中的各组件呈M行×N列的网格状分布。
2. 网格每列宽度相同,等于容器的宽度除以网格的列数。
网格每行高度相同,等于容器的高度除以网格的行数。
3. 各组件的排列方式为:从上到下,从左到右。
容器大小改变时,组件的相对位置不变,大小会改变。
4. 设置行数和列数时,行数或者列数可以有一个为零。(即不限)
若rows为0,cols为3,则列固定为3,行不限,每行只能放3个
若cols为0,rows为3,则行固定为3,列不限,每行必定有控件
5. 至于其他规则,很明显啦。
假设你有13个控件,你又设置了三行,一行五个,你觉得第三行应该有多少个?
并且如果组件数量超过设定的个数,布局管理器会自动增加网格个数,原则是保持行数不变。就是
假设还是13个控件,你设置了两行,一行五个,放不下系统就给加了行,第三行放多出来的三个)
2、网格布局GridLayout类的常用构造函数和方法
构造方法摘要
GridLayout()
默认值的网格布局,组件一行一列。
GridLayout
(int rows, int cols)
具有指定行列的网格布局。
Rows为行数,cols为列数。
GridLayout
(int rows,int cols,
int hgap,int vgap)
指定行数、列数,
并指定组件水平、纵向间距。
方法摘要
int getRows()
获取此布局中的行数。
int getColumns()
获取此布局中的列数。
int getHgap()
获取组件之间的水平间距。
int getVgap()
获取组件之间的垂直间距。
void setRows(int rows)
将此布局中的行数设置为指定值。
void setColumns(int cols)
将此布局中的列数设置为指定值。
void setHgap(int hgap)
将组件之间的水平间距设置为指定值。
void setVgap(int vgap)
将组件之间的垂直间距设置为指定值。
void removeLayoutComponent
(Component comp)
从布局移除指定组件。
String toString()
返回此网格布局的值的字符串表示形式。
3、网格布局实例:
实例://GridLayoutDemo.Java
package gridlayoutdemo;
import java.awt.*;
import javax.swing.*;
class GridFrame extends JFrame{
//定义文本框
JTextArea t = new JTextArea();
//定义面板,并设置为网格布局,5行4列,组件水平、垂直间距均为3,计算器按钮在面板内
JPanel p = new JPanel(new GridLayout(5,4,3,3));
//定义字符串数组,为按钮的显示文本赋值,注意字符元素的顺序与循环添加按钮保持一致
String str[]={"()","π","←","+","7","8","9","-","4","5","6","*","1","2","3","/","C","0",".","="};
public GridFrame(String s){
super(s); //为窗体名称赋值
setLayout(new BorderLayout()); //定义窗体布局为边界布局
JButton btn[]; //声明按钮数组
btn = new JButton[str.length]; //创建按钮数组
//循环定义按钮,并添加到面板中
for (int i=0;i<str.length;i++) {
btn[i] = new JButton ( str[i] );
btn[i].setFont(new Font ( "微软雅黑" , Font.PLAIN , 22));//设置按钮字体
p.add(btn[i]);
}
//将文本框放置在窗体NORTH位置
getContentPane().add(t,BorderLayout.NORTH);
//将面板放置在窗体CENTER位置
getContentPane().add(p,BorderLayout.CENTER);
setSize(250,200); //设置大小
setLocationRelativeTo(null); //让窗体居中显示
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true); //设置显示
}
public static void main (String[] args){
GridFrame gl = new GridFrame("网格布局计算器"); //生成对象并设置标题为 网格布局计算器
}
}
- 十八、java-GUI之网格布局(GridLayout)
- android之网格布局GridLayout
- java GridLayout布局 网格布局演示
- Android UI之GridLayout(网格布局)
- java布局之GridLayout
- Java布局管理器(三)之GridLayout(网格布局管理)和CardLayout( 卡片布局管理)
- Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器
- SWT GridLayout 网格布局
- SWT GridLayout 网格布局
- SWT GridLayout网格布局
- GridLayout网格布局
- GridLayout网格布局
- 网格布局管理器GridLayout
- SWT GridLayout 网格布局
- GridLayout(网格布局)
- GridLayout—网格布局
- 网格布局GridLayout
- GridLayout网格布局1
- iOS下JS与OC互相调用(五)-->UIWebView + WebViewJavascriptBridge
- PostGIS导入导出栅格数据
- PAT.1010.一元多项式求导
- struts2标签引用Properties文件属性
- 解决ubuntu远程访问的问题——亲测有效
- 十八、java-GUI之网格布局(GridLayout)
- 使用 Grapicmagick 和 Im4java 处理图片
- springcloud整合swagger 界面查看restful api
- CSS reset收藏
- org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [XXX.xml]';
- 向已有员工表中插入或更新员工数据
- 字符编码
- DMA原理和实验
- 谈谈我的Android多渠道打包方式