Java 为空JLabel保留空间

Java 为空JLabel保留空间,java,swing,resize,jlabel,pack,Java,Swing,Resize,Jlabel,Pack,我有一个用于错误输出的JLabel。这在开始时是空的,可以通过一些操作来填充。 但是当它是空的,当我打包我的JFrame时,它不会被注意到。因此,当我的错误标签获取内容时,我需要重新打包帧以使其可见(这也会调整帧的大小,这是我想要避免的) 目前我使用 lError.settext(" "); // set text to space as buffer content 但我对这个解决方案不满意 是否有其他更干净的方法来达到我的结果 编辑:通过使用setPreferredSize()编辑标签周围

我有一个用于错误输出的JLabel。这在开始时是空的,可以通过一些操作来填充。 但是当它是空的,当我打包我的JFrame时,它不会被注意到。因此,当我的错误标签获取内容时,我需要重新打包帧以使其可见(这也会调整帧的大小,这是我想要避免的)

目前我使用

lError.settext(" "); // set text to space as buffer content
但我对这个解决方案不满意

是否有其他更干净的方法来达到我的结果

编辑:通过使用
setPreferredSize()
编辑标签周围的面板大小,我达到了我想要的效果,但我仍然有这个空间缓冲区

pError.setPreferredSize(new Dimension(pError.getPreferredSize().width, new JLabel(" ").getPreferredSize().height));

这可能取决于您使用的布局,但有时我不仅需要调用setPreferredSize,还需要调用setMinimumSize(和setMaximumSize)。

lError
的固定大小,还是有太多的文本需要滚动条?@MartinFrank滚动是不必要的。如果您愿意,请更正IError.setText(“”);它也会起作用。但它是空字符串而不是空格。对于固定大小标签,您可以设置首选大小。lError.setPreferredSize(新尺寸(20,18))@伊凡纳西:不,不是。当我将文本设置为空字符串时,pack()会忽略标签的空格。我也使用了这些方法,但无法得到比我最近编辑的结果更清晰的结果。您使用的是什么布局?你能为你的代码提供更多的上下文吗?我的pError是一个
GridBagLayout()