自动增加JLabel

时间:2013-07-15 07:53:03

标签: java swing jlabel

我想从.txt文件输出文本,该文件会有越来越多的文本,但是如果我这样做而不修改JLabel的大小,文本就会关闭屏幕,是否有可能以某种方式自动增加JLabel虽然以某种方式检测需要多少才能增加以填充所有文本?或者是否有其他文本持有者不可编辑但会满足这种需求?

3 个答案:

答案 0 :(得分:5)

您可以使用Swing不可编辑的任何Document组件,因此您可以自由选择。选择一些可以很好地包裹在JScrollPane中的内容,如上面提到的JListJTextArea,是一个不错的选择。

答案 1 :(得分:1)

虽然可变大小的JLabel可能不是很好的UI样式,但您可以通过将JLabel放在适当的布局管理器中并请求新布局来实现所需的功能。如何强制新布局的描述为here

SwingUtilities.invokeLater(new Runnable {
                             public void run() { 
                                somecomponent.repaint();
                             }
                           });

答案 2 :(得分:1)

如果您有长文本,请使用文本区域。 不建议自动增加组件长度。因为你的对齐 屏幕上的其他组件可能会受到影响。

对于这些类型的情况,我们依赖 scrollBar

因此,所以。使用TextArea,为它们设置 preferredSize 。然后使用ScollBar文本 超出首选尺寸。

另一种解决方案:确定组件的最小和最大尺寸。默认显示 将以最小尺寸显示文字。如果文本增加,则增加文本区域的大小。 停止增加尺寸直到达到最大尺寸。如果滚动条达到最大值,则显示滚动条。 请记住,您可能必须覆盖JTextArea或其UIComponent(首选)。