【问题标题】:Can't resize JLabels in BoxLayout无法在 BoxLayout 中调整 JLabels 的大小
【发布时间】:2016-03-18 05:25:38
【问题描述】:

我正在尝试设置一些 JLabel 以用作 BoxLayout 内的按钮,它们相互堆叠。布局很好,但我发现我无法将标签调整为我想要的尺寸。我正在使用以下代码来调整它们的大小:

JLabel fileAddBtn = new JLabel("Add File", SwingConstants.CENTER);
fileAddBtn.setBorder(BorderFactory.createLineBorder(Color.black));
fileAddBtn.setMaximumSize(new Dimension(Integer.MAX_VALUE, fileAddBtn.getMinimumSize().height));

    JLabel fileRemBtn = new JLabel("Remove File", SwingConstants.CENTER);
fileRemBtn.setBorder(BorderFactory.createLineBorder(Color.black));
fileRemBtn.setMaximumSize(new Dimension(Integer.MAX_VALUE, fileRemBtn.getMinimumSize().height));

到目前为止,我有两个标签,一个比另一个长。它们都采用较长标签的宽度,这很好,但是标签将文本的边缘紧贴到最近的像素。有什么办法可以让标签变大一点,以便标签周围有一点边框?我试过使用setSize(),但没用。我还在上面的代码中添加了直接值,但它也没有改变它们。我尝试在它们周围添加一个EmptyBorder(),它适用于调整大小,但它隐藏了我围绕它们的线边框。有什么想法吗?

【问题讨论】:

  • 你能展示你应用的图片吗

标签: java swing border layout-manager boxlayout


【解决方案1】:

有什么办法可以让标签变大一点,让标签周围有一点边框?

当然。添加EmptyBorder

但由于代码已经为标签添加了边框,要保留该线条边框,请制作一个由空边框和线条边框组成的CompoundBorder,并将复合边框设置为标签。

另见Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?(是的。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多