java - J面板: layout help needed

标签 java swing layout layout-manager gridbaglayout

我想构建这个布局:

其中包含一个标签、一个文本字段、2 个按钮和一个可变高度文本区域(从 1 行到 40 多行)。我尝试使用 GridBagLayout ,但没有成功。按钮彼此重叠,我不知道如何设置每个元素的大小,并且它们之间没有空格。这是到目前为止的代码:

    GridBagLayout gridbag = new GridBagLayout();
    this.setLayout(gridbag);
    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.HORIZONTAL;

    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth = 4;
    gridbag.setConstraints(lblGuidelines, c);
    this.add(lblGuidelines);

    c.gridx = 0;
    c.gridy = 1;
    c.gridwidth = 4;
    gridbag.setConstraints(txtNumberInput, c);
    this.add(txtNumberInput);

    c.gridx = 0;
    c.gridy = 2;
    c.gridwidth = 2;
    c.weightx = 0.5;
    gridbag.setConstraints(btnCheck, c);
    this.add(btnCheck);

    c.gridx = 0;
    c.gridy = 2;
    c.gridwidth = 2;
    c.weightx = 0.5;
    gridbag.setConstraints(btnClear, c);
    this.add(btnClear);

    c.gridx = 0;
    c.gridy = 3;
    c.gridwidth = 4;
    gridbag.setConstraints(textArea, c);
    this.add(textArea);

最佳答案

类似...

Something like

基本上,您需要将第二个按钮的 gridx 位置设置为 1 而不是 0。此外,在列不存在的情况下指定 gridwidth 是没有意义的,它可能会导致问题,但大多数情况下,这些列的虚拟宽度将为 0,因此不会没有多大意义

GridBagLayout gridbag = new GridBagLayout();
this.setLayout(gridbag);
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;

JLabel lblGuidelines = new JLabel("Please neter a telephone number and check if it's valid or not");
JTextField txtNumberInput = new JTextField(12);
JButton btnCheck = new JButton("Check");
JButton btnClear = new JButton("Clear");
JTextArea textArea = new JTextArea(20, 12);

c.gridx = 0;
c.gridy = 0;
c.gridwidth = 2;
c.insets = new Insets(8, 8, 8, 8);
c.weightx = 1;
this.add(lblGuidelines, c);

c.gridx = 0;
c.gridy = 1;
this.add(txtNumberInput, c);

c.gridx = 0;
c.gridy = 2;
c.gridwidth = 1;
c.weightx = 0.5;
this.add(btnCheck, c);

c.gridx = 1;
c.gridy = 2;
this.add(btnClear, c);

c.gridx = 0;
c.gridy = 3;
c.gridwidth = 2;
c.weightx = 1;
this.add(new JScrollPane(textArea), c);

关于java - J面板: layout help needed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51916541/

相关文章:

javascript - 如何使用 DIV 创建类似表格的 CSS 布局?

html - 可读单列布局的设备无关宽度

java图像白色提取

java - HttpClient 中的连接重置错误

java - 在子类中调用父类方法时的stackoverflow

java - CardLayout 未显示 JPanel

java - 在 Spring Social Tweeter 中,JSON 如何成为 Tweet,以及 RestTemplate.getObject<T> 如何工作?

java - AWT和Swing组件一起,同步显示?

java - Repaint() 未调用 JComponent 类中的paintComponent()

jquery - 水平滚动布局左/右: jQuery/CSS quiz