无法在BoxLayout中调整JLabel的大小

时间:2016-03-18 05:25:38

标签: java swing border layout-manager boxlayout

我正在尝试设置一些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(),它可用于调整尺寸,但它隐藏了围绕它们的线边框。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

  

有没有办法让标签变得更大,以至于标签周围有一点边框?

不确定。添加EmptyBorder

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

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

相关问题