【问题标题】:GridBagLayout not workingGridBagLayout 不起作用
【发布时间】:2013-08-22 15:09:54
【问题描述】:

我有一些产生这个的代码:

我希望 3、4 和 5 个 JTextField 放在旁边 JLabels,如 1 和 2 中所示。 我的代码是尝试这样做,但上面的图像是结果。

谁能指出我代码中的问题?

import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

 public class example{  
       public static void main(String[] args){

        JDialog jd = new JDialog();
    jd.setTitle("Example");
    GridBagLayout gl = new GridBagLayout();
    final JTextField j1 = new JTextField("1");
    final JTextField j2 = new JTextField("2");
    final JTextField j3 = new JTextField("3");
    final JTextField j4 = new JTextField("4");
    final JTextField j5 = new JTextField("5");
    jd.setLayout(gl);
    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.BOTH;
    c.weightx = 1.0;
    c.weighty = 1.0;
    c.gridx = 0;
    c.gridy = 0;
    jd.add(new JLabel("TextField 1: "), c);
    c.gridx = 1;
    jd.add(j1,c);
    c.gridx = 0;
    c.gridy++;
    jd.add(new JLabel("TextField 2: "), c);
    c.gridx = 1;
    c.gridy=1;
    jd.add(j2,c);
    c.gridx = 0;
    c.gridy++;
    jd.add(new JLabel("TextField 3: "), c);
    c.gridx = 1;
    jd.add(j3);
    c.gridx = 0;
    c.gridy++;
    jd.add(new JLabel("TextField 4: "), c);
    c.gridx = 1;
    jd.add(j4);
    c.gridx = 0;
    c.gridy++;
    jd.add(new JLabel("TextField 5: "), c);
    c.gridx = 1;
    jd.add(j5);


    jd.pack();
    jd.setVisible(true);
       }
 } 

【问题讨论】:

    标签: java swing gridbaglayout


    【解决方案1】:
    jd.add(j3);    // **** here
    c.gridx = 0;
    c.gridy++;
    jd.add(new JLabel("TextField 4: "), c);
    c.gridx = 1;
    jd.add(j4);    // **** here
    c.gridx = 0;
    c.gridy++;
    jd.add(new JLabel("TextField 5: "), c);
    c.gridx = 1;
    jd.add(j5);    // **** here
    

    您没有在多个 add(...) 方法调用中使用 GridBagConstraints。如果您不告诉 GridBagLayout 如何放置组件,则该 GridBagLayout 将不起作用,并且解决方案正如您所期望的那样,在将组件添加到使用 GBL 的容器时使用约束对象。

    【讨论】:

      猜你喜欢
      • 2014-11-23
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      • 2014-05-23
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      相关资源
      最近更新 更多