首页编程gridlayout?GridLayout的几种常用设置

gridlayout?GridLayout的几种常用设置

编程之家 2023-11-01 178次浏览

大家好,今天给各位分享gridlayout的一些知识,其中也会对GridLayout的几种常用设置进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

gridlayout?GridLayout的几种常用设置

java GridBagLayout与GridLayout的区别

GridLayout类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件,比较死板

GridBagLayout类是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件垂直、水平或沿它们的基线对齐。每

个 GridBagLayout对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域。单元格可大可小,可以占

用两个单元格的宽度或者两个单元格的高度,类似html中表格中的单元格的合并

GridLayout中如何设置一个按钮占两个位置,就像我截图的那样

思路:对窗体应用边界布局,在NORTH上放置一个文本框,在CENTER上放置一个面板,面板上放置计算器的相应按钮

//GridFrame.Java

gridlayout?GridLayout的几种常用设置

import java.awt.*;

import javax.swing.*;

class GridFrame extends JFrame{

//定义面板,并设置为网格布局,4行4列,组件水平、垂直间距均为3

JPanel p=new JPanel(new GridLayout(4,4,3,3));

JTextArea t=new JTextArea();//定义文本框

gridlayout?GridLayout的几种常用设置

//定义字符串数组,为按钮的显示文本赋值

//注意字符元素的顺序与循环添加按钮保持一致

String str[]={"7","8","9","/","4","5","6","*","1","2","3","-","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]);

p.add(btn[i]);

}

//将文本框放置在窗体NORTH位置

getContentPane().add(t,BorderLayout.NORTH);

//将面板放置在窗体CENTER位置

getContentPane().add(p,BorderLayout.CENTER);

setVisible(true);

setSize(250,200);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationRelativeTo(null);//让窗体居中显示

}

public static void main(String[] args){

GridFrame gl=new GridFrame("网格布局计算机!");

}

}

程序执行结果如下图:

GridLayout和GridView的区别

GridLayout和GridView的区别:

GridView是一种适配器布局,它的继承关系是ViewGroup-->AdapterView-->AbsListView-->GridView,他是从一个adapter中取出内容填充到GridView中的每一个子View。

GridLayout是一个布局,它大大简化了对复杂布局的处理,提高了性能。他直接继承自ViewGroup,和LinearLayout这种是类似的。

我感觉GridView和GridLayout就和ListView和LinearLayout的区别类似。

那么什么时候用GridView什么时候用GridLayout呢?

类似九宫格这种可以采用GridView。但是像Android系统自带的计算器的界面就不可能通过GridView实现,因为有些按键不一样大,如果使用GridLayout实现那就很简单了。另外GridLayout比RelativeLayout更好用。

GridLayout的几种常用设置

1.GridLayout设置:

GridLayout layout= new GridLayout();

//设置容器的列数

layout.numColumns= 4;

//设置容器上的组件是否等距分开

layout.makeColumnsEqualWidth= false;等价写法:GridLayout layout= new GridLayout(4, false);

2.GridData.grabExcessHorizontalSpace、GridData.grabExcessVerticalSpace

①GridData.grabExcessHorizontalSpace

GridData gridData= new GridData();

//当容器大小变化时,组件所在列空间横向随容器的变化而变化

gridData.grabExcessHorizontalSpace= true;等价写法:GridData gridData= new GridData(GridData.GRAB_HORIZONTAL);

②GridData.grabExcessVerticalSpace

GridData gridData= new GridData();

//当容器大小变化时,组件所在行空间纵向随容器的变化而变化

gridData.grabExcessVerticalSpace= true;等价写法:GridData gridData= new GridData(GridData.GRAB_VERTICAL);

3.GridData.FILL_HORIZONTAL、GridData.FILL_VERTICAL、GridData.FILL_BOTH

① GridData.FILL_HORIZONTAL:

GridData gridData= new GridData();

//横向对齐方式

gridData.horizontalAlignment= GridData.FILL;

gridData.grabExcessHorizontalSpace= true;等价写法:GridData gridData= new GridData(GridData.FILL_HORIZONTAL);

②GridData.FILL_VERTICAL

GridData gridData= new GridData();

//纵向对齐方式

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

微信定制开发?微信小程序模板和定制有什么区别 江宁网站建设(江宁网站建设有专门的公司吗)