swing快速入门(七)
2023-12-13 08:41:02
注释很详细,直接上代码
新增内容
GridBagLayout布局管理器
跨行拓展的注意点
add函数与参数设置结合的封装
import java.awt.*;
public class swing_test_5 {
public static void main(String[] args) {
//创建窗口对象
Frame frame =new Frame("示例GridBagLayout");
//创建GridBagLayout对象
GridBagLayout gbl=new GridBagLayout();
//把frame的布局管理器设为GridBagLayout
frame.setLayout(gbl);
//创建GridBagConstraints对象
GridBagConstraints gbc=new GridBagConstraints();
//创建容量为10的Button数组
Button[] bs =new Button[10];
// 遍历数组,初始化每一个Button
for(int i=0;i<bs.length;i++) {
bs[i]=new Button("按钮"+(i+1));
}
// 设置每个GridBagConstraints对象的fill属性为GridBagConstraints.BOTH
//当有空白区域时自动扩大组件占满空白区域
gbc.fill=GridBagConstraints.BOTH;
//往frame中添加数组中的所有Button
//这里是封装了一个方法,可以先看最下面的方法内容
add_Button(frame,gbc,bs[0],0,0,1,1);
add_Button(frame,gbc,bs[1],1,0,1,1);
add_Button(frame,gbc,bs[2],2,0,1,1);
add_Button(frame,gbc,bs[3],3,0,1,1);
add_Button(frame,gbc,bs[4],0,1,4,1);
//像这样高度未拓展的行则需要该行已被坐标为该行的组件拓展,常常使用空白组件拓展
//宽度同理,但一般这个问题都是出现在高度上
add_Button(frame,gbc,bs[5],0,2,2,2);
add_Button(frame,gbc,bs[6],2,2,1,1);
add_Button(frame,gbc,bs[7],3,2,1,1);
add_Button(frame,gbc,bs[8],2,3,1,1);
add_Button(frame,gbc,bs[9],3,3,1,1);
frame.pack();
frame.setVisible(true);
}
//设置起始坐标和横竖扩展比例
//入口只能调用静态的方法
public static void add_Button(Frame frame,GridBagConstraints gbc,Button bs,int x,int y,int dx,int dy){
//设置起始坐标x,y
gbc.gridx=x;
gbc.gridy=y;
//设置拓展长度dx,dy
gbc.gridwidth=dx;
gbc.gridheight=dy;
//设置x,y的权值
gbc.weightx = 1.0;
gbc.weighty = 1.0;
//添加组件
frame.add(bs,gbc);
}
}
运行效果:
文章来源:https://blog.csdn.net/m0_73756108/article/details/134935242
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!