liuwen0411 2011-03-28 13:42
浏览 305
已采纳

关于GridBagLyout管理器的用法

有一段简单的界面布局代码如下:

    username = new JTextField(20);
    password = new JPasswordField(20);
    submitButton = new JButton("确定");
    cancelButton = new JButton("取消");

GridBagLayout gridBagLayout = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
mainPanel.setLayout(gridBagLayout);
gbc.anchor=GridBagConstraints.SOUTHWEST;
Insets insets = new Insets(5, 50, 5, 5);
gbc.insets = insets;

    gbc.gridx=1;   
    gbc.gridy=1;
    mainPanel.add(new JLabel(" "),gbc); 
    gbc.gridx=2; 
    gbc.gridy=2;
    mainPanel.add(new JLabel(" "),gbc);
    gbc.gridx=3; 
    gbc.gridy=3;
    mainPanel.add(new JLabel(" "),gbc);
    gbc.gridx=3; 
    gbc.gridy=4;
    mainPanel.add(new JLabel(" "),gbc);

    //username
    gbc.gridx=3;
    gbc.gridy=5;
    gbc.gridwidth = GridBagConstraints.REMAINDER; 
    gbc.fill = GridBagConstraints.NONE; 
    mainPanel.add(username, gbc); 

    //password
    gbc.gridy=GridBagConstraints.RELATIVE;
    gbc.gridwidth = GridBagConstraints.REMAINDER;   
    mainPanel.add(password, gbc);

    //submit
    gbc.gridy=GridBagConstraints.RELATIVE;
    gbc.gridwidth = 1;
    mainPanel.add(submitButton, gbc); 

    //cancel
    gbc.gridx=GridBagConstraints.RELATIVE;
    mainPanel.add(cancelButton, gbc); 

界面的效果是在一个背景图的中间偏右下角的地方,每一行放置一个文本输入,分别用作帐号和密码的输入,第3行放置两个按钮,确定和取消,因为背景图上写好了“用户名”和“密码”这几个字,所以我的两个TextField必须要分别的紧跟着这几个字的后面,现在布局基本没什么问题,但是我想把输入用户名和密码的TextField的长度给缩短点,我用
username.setPreferredSize(new Dimension(100, 10));和setSize函数都不行,username的长度一点变化都没有。反倒是宽值可以跟随数值变化,正在学GridBagLayout的布局。谢谢了。

  • 写回答

1条回答 默认 最新

  • guo1392781 2011-03-28 14:17
    关注

    可以这样
    方法一、
    设置
    int fieldWidth=50(具体是什么变量,要根据情况,在这里是你的文本框长度值,自己设置一下)
    gbc.ipadx= fieldWidth;
    就行了

    方法二、
    或者设置username.setMinSize(new Dimension(100, 10));注意是最小值,而不是最适值

    如果还有什么问题,可以再补充……

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站