当前位置: 首页 > backend >正文

Java学习 布局管理器之GridLayout(网格布局)

GridLayout( 网格布局)

具体请看 官方JavaApi: java.awt.GridLayout

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 垂直间隔为5JPanel 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); ///将文本框放在窗口 NORTHgetContentPane().add(panel,BorderLayout.CENTER); //将面板放在窗口 CENTERsetTitle("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、当容器大小发生改变时,各组件的相对位置不变,大小会改变。

http://www.xdnf.cn/news/11428.html

相关文章:

  • 企业最新几种好用的数据同步工具对比
  • Qt 多线程的几种实现方式
  • Linux系统三步安装QQ
  • C/C++网络编程
  • JSTL-核心标签库
  • 动态域名内网穿透(永久免费)
  • 设计模式七大原则-迪米特法原则
  • 安全小课堂丨什么是暴力破解?如何防止暴力破解
  • 谷歌浏览器、Yandex浏览器使用体验分享
  • 光流法(optical flow)简介
  • 13800138000来电?手机管家:小心诈骗
  • Windows 10 离线安装 .NET Framework 3.5 的方法和技巧
  • WISP模式
  • waterdrop介绍
  • CreateThread()函数及_beginthreadex()函数
  • C++ ofstream和ifstream详细用法
  • 使用Latex制作分享,演讲,Presentation用的Slides,PPT——Beamer教程
  • .htaccess语法讲解
  • [Linux系列]Chrony时间同步服务器
  • 下载了鲁大师,打开goolgle浏览器弹出360导航页
  • Web前端开发【新手入门指南】
  • JFreeChart 使用介绍
  • maven 环境变量的配置
  • 使用Collections.shuffle打乱集合顺序
  • 曼彻斯特编码
  • build-essential软件包简介
  • 24 | Boost:你需要的“瑞士军刀”
  • JQuery选择器及其样式操作、筛选方法以及链式编程
  • 彩虹表(rainbow table)
  • 如何用GlobalMapper下载高清卫星影像?