1

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

4

3 回答 3

5

您可以使任何带有文档的Swing组件不可编辑,因此您可以自由选择。选择可以很好地包装在JScrollPane中的东西,比如提到的JListJTextArea,是一个不错的选择。

于 2013-07-15T08:05:57.073 回答
1

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

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

所以因此。使用 TextArea,为它们设置一个preferredSize。如果文本超出首选大小,则使用 ScollBar。

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

于 2013-07-15T08:16:18.670 回答
1

尽管可变大小的 JLabel 可能不是好的 UI 样式,但您可以通过将 JLabel 放入适当的布局管理器并请求新布局来实现所需的功能。此处描述了如何强制使用新布局。

SwingUtilities.invokeLater(new Runnable {
                             public void run() { 
                                somecomponent.repaint();
                             }
                           });
于 2013-07-15T08:08:49.420 回答