我想从.txt文件输出文本,该文件会有越来越多的文本,但是如果我这样做而不修改JLabel的大小,文本就会关闭屏幕,是否有可能以某种方式自动增加JLabel虽然以某种方式检测需要多少才能增加以填充所有文本?或者是否有其他文本持有者不可编辑但会满足这种需求?
答案 0 :(得分:5)
您可以使用Swing不可编辑的任何Document组件,因此您可以自由选择。选择一些可以很好地包裹在JScrollPane中的内容,如上面提到的JList或JTextArea,是一个不错的选择。
答案 1 :(得分:1)
虽然可变大小的JLabel可能不是很好的UI样式,但您可以通过将JLabel放在适当的布局管理器中并请求新布局来实现所需的功能。如何强制新布局的描述为here。
SwingUtilities.invokeLater(new Runnable {
public void run() {
somecomponent.repaint();
}
});
答案 2 :(得分:1)
如果您有长文本,请使用文本区域。 不建议自动增加组件长度。因为你的对齐 屏幕上的其他组件可能会受到影响。
对于这些类型的情况,我们依赖 scrollBar 。
因此,所以。使用TextArea,为它们设置 preferredSize 。然后使用ScollBar文本 超出首选尺寸。另一种解决方案:确定组件的最小和最大尺寸。默认显示 将以最小尺寸显示文字。如果文本增加,则增加文本区域的大小。 停止增加尺寸直到达到最大尺寸。如果滚动条达到最大值,则显示滚动条。 请记住,您可能必须覆盖JTextArea或其UIComponent(首选)。