java swing 中的Gridbaglayout

初学javaswing,在看到gridbaglayout时,有个例子无法理解。我不能理解的是,gridbaglayout都没有设置整个容器几行几列,那么在调用add方法是... 初学java swing, 在看到gridbaglayout时,有个例子无法理解。
我不能理解的是,gridbaglayout 都没有设置整个容器几行几列,那么在调用add方法是,头两个参数,如0,0 或 2,3有什么意义啊?

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class test7 extends JPanel//此处类继承了JPanel类
{
static final int WIDTH=300;
static final int HEIGHT=150;
JFrame loginframe;
public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h)
{//此方法用来添加控件到容器中
constraints.gridx=x;
constraints.gridy=y;
constraints.gridwidth=w;
constraints.gridheight=h;
add(c,constraints);
}
test7()
{
loginframe=new JFrame("信息管理系统"); //设置顶层容器
loginframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置其顶层容器的关闭性
GridBagLayout lay=new GridBagLayout();//创建网格组布局方式对象
setLayout(lay);
loginframe.add(this, BorderLayout.WEST);
loginframe.setSize(WIDTH,HEIGHT);
Toolkit kit=Toolkit.getDefaultToolkit();//设置顶层容器框架为居中
Dimension screenSize=kit.getScreenSize();
int width=screenSize.width;
int height=screenSize.height;
int x=(width-WIDTH)/2;
int y=(height-HEIGHT)/2;
loginframe.setLocation(x,y);
JButton ok=new JButton("确认");
JButton cancel=new JButton("放弃");
JLabel title=new JLabel("布局管理器测试窗口");
JLabel name=new JLabel("用户名");
JLabel password=new JLabel("密 码");
final JTextField nameinput=new JTextField(15);
final JTextField passwordinput=new JTextField(15);
GridBagConstraints constraints=new GridBagConstraints();
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.EAST;
constraints.weightx=3;
constraints.weighty=4;
add(title,constraints,0,0,4,1); //使用网格组布局添加控件
add(name,constraints,0,1,1,1);
add(password,constraints,0,2,1,1);
add(nameinput,constraints,2,1,1,1);
add(passwordinput,constraints,2,2,1,1);
add(ok,constraints,0,3,1,1);
add(cancel,constraints,2,3,1,1);
loginframe.setResizable(false);
loginframe.setVisible(true);
}
}
public class test7
{
public static void main(String[] args)
{
login log=new login();
}
}
展开
 我来答
zhaotao_king
2010-01-21 · TA获得超过2455个赞
知道大有可为答主
回答量:863
采纳率:0%
帮助的人:1171万
展开全部
public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h)
{//此方法用来添加控件到容器中
constraints.gridx=x;//设置横坐标
constraints.gridy=y;//设置纵坐标
constraints.gridwidth=w;//设置横占几个单元格
constraints.gridheight=h;//设置纵占几个单元格
add(c,constraints);
}

int x, int y你看一下上面的注释就明白了
0,0代表第1行第1列
2,3代表第3行第4列
具体你可以查下API,如果觉得还有什么疑问的话,可以百度HI我!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苏州蓝晓生物科技有限公司_
2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经... 点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
xiangwulu
2010-01-21 · TA获得超过2692个赞
知道小有建树答主
回答量:547
采纳率:63%
帮助的人:263万
展开全部
Note that you don't give a fixed initial number of rows and columns. Instead, the layout determines the table parameters according to what will satisfy all of the the GridBagConstraints settings for the gridx, gridy values for all of the components.

http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter07/layoutManagers.html

参考资料: http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter07/layoutManagers.html

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式