【发布时间】:2012-01-12 13:49:03
【问题描述】:
我有两个渲染器。其中一个扩展了 JTextArea,另一个继承了 JPanel。我使用 GridBagLayout 将它们添加到另一个 JPanel。
当调整 JTextArea 大小时,我至少可以看到一些文本。如果是 JPanel,我有两个标签,如果 JPanel 太小,它们就会完全消失。
有没有办法让 JLabel 被调整大小而不是完全消失?
感谢您的回答!
为 JPanel 使用 BoxLayout 并指定最小、首选和最大尺寸解决了我的问题。
【问题讨论】:
-
如需尽快获得更好的帮助,请附上sscce。
-
“渲染器”是什么意思?真的是 XXCellRenderer,将面板作为渲染组件出售?如果不是,请不要使用这个词,你会让我感到困惑 ;-)
-
我的意思是我有两个组件。其中之一是工作正常的 JTextArea,因为如果可以的话,它至少会显示一些文本。 JPanel 隐藏了整个 JLabel。这是否意味着我需要编写自己的代码来调整 JPanel 中每个组件的大小?
-
我从未见过这个问题。 GridBagLayot 使用最小尺寸来帮助确定在没有足够空间以首选尺寸显示组件时如何缩小组件。 JLabel 的最小大小等于其首选大小,因此 JLabel 永远不会缩小大小。发布您的 SSCCE 来证明您的问题,也许有人可以提供帮助。
标签: java swing resize jpanel jlabel