首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GridBagLayout中的两个JLabels之间添加JSeparator

如何在GridBagLayout中的两个JLabels之间添加JSeparator
EN

Stack Overflow用户
提问于 2013-05-29 19:21:11
回答 1查看 4.7K关注 0票数 3

我希望在GridBagLayout中的每个JLabel之间有一个JSeparator。目前它看起来是这样的:

现在我想在图标和JLabel之间的每个TESTSTEP标签后面添加一个JSeparator。以下约束仅适用于JLabel和图标。我必须添加什么才能使JSeparator覆盖整个垂直线?

代码语言:javascript
复制
  GridBagConstraints lastConstraints = new GridBagConstraints();
  GridBagConstraints labelConstraints = new GridBagConstraints();

  lastConstraints.fill = GridBagConstraints.NONE;
  lastConstraints.anchor = GridBagConstraints.EAST;
  lastConstraints.weightx = 0.0;
  lastConstraints.gridwidth = GridBagConstraints.REMAINDER;
  lastConstraints.insets = new Insets(8, 8, 8, 8);

  labelConstraints = (GridBagConstraints) lastConstraints.clone();
  labelConstraints.weightx = 0.0;
  labelConstraints.fill = GridBagConstraints.NONE;
  labelConstraints.anchor = GridBagConstraints.WEST;
  labelConstraints.gridwidth = 1;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-29 19:31:37

使用:

填充网格= HORIZONTAL;

  • weightx =1.0;剩余网格宽度=;

小示例:

代码语言:javascript
复制
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class TestJSeparator {

    public TestJSeparator() {
        JFrame frame = new JFrame(TestJSeparator.class.getSimpleName());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel bigPanel = new JPanel(new GridBagLayout());
        GridBagConstraints lastConstraints = new GridBagConstraints();
        GridBagConstraints labelConstraints = new GridBagConstraints();
        GridBagConstraints separatorConstraint = new GridBagConstraints();
        lastConstraints.fill = GridBagConstraints.NONE;
        lastConstraints.anchor = GridBagConstraints.EAST;
        lastConstraints.weightx = 0.0;
        lastConstraints.gridwidth = GridBagConstraints.REMAINDER;
        lastConstraints.insets = new Insets(8, 8, 8, 8);

        labelConstraints = (GridBagConstraints) lastConstraints.clone();
        labelConstraints.weightx = 0.0;
        labelConstraints.fill = GridBagConstraints.NONE;
        labelConstraints.anchor = GridBagConstraints.WEST;
        labelConstraints.gridwidth = 1;

        separatorConstraint.weightx = 1.0;
        separatorConstraint.fill = GridBagConstraints.HORIZONTAL;
        separatorConstraint.gridwidth = GridBagConstraints.REMAINDER;

        JLabel label1 = new JLabel("1. TESTSTEP 0 TEST 0 DE");
        JLabel result1 = new JLabel(UIManager.getIcon("OptionPane.informationIcon"));
        JLabel label2 = new JLabel("2. TESTSTEP 0 TEST 1 DE");
        JLabel result2 = new JLabel(UIManager.getIcon("OptionPane.errorIcon"));
        bigPanel.add(label1, labelConstraints);
        bigPanel.add(result1, lastConstraints);
        bigPanel.add(new JSeparator(JSeparator.HORIZONTAL), separatorConstraint);
        bigPanel.add(label2, labelConstraints);
        bigPanel.add(result2, lastConstraints);
        bigPanel.add(new JSeparator(JSeparator.HORIZONTAL), separatorConstraint);
        frame.add(bigPanel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                TestJSeparator gui = new TestJSeparator();
            }
        });
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16812538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档