如何使JTextArea可滚动但仍设置高度?

时间:2013-10-15 15:42:01

标签: java swing scroll height jtextarea

我有一个连接到设备的Java应用程序,并在JTextArea中显示日志。我希望JTextArea可以滚动,我已将其放在JScrollPane内。包含JScrollPane的{​​{1}}位于JTextArea的{​​{1}}部分。我使用CENTER在显示之前设置BorderLayout的大小。但是,这有一些问题:

  • 没有为pack()设置高度,它很薄,文字看不太清楚(在第二张图片中实际上有文字):

    with no text & no height set with some text & no height set

  • JFrame设置首选大小时,它似乎最初工作正常。但是当有更多文本时,滚动条不会按预期显示。无论JTextArea中的文字数量多少,都会在JTextArea调整大小时显示。这也不会通过滚动显示所有文本。

    with little text & preferred height with lots of text & preferred height with lots of text & preferred height & resized

  • 此外,设置最小高度也无济于事;它导致与第一种情况相同的结果。

我的初始化框架代码:

JFrame

1 个答案:

答案 0 :(得分:2)

不要玩尺寸。

在文本区域中指定所需的行/列,文本区域将计算其自己的首选大小。

//logArea = new JTextArea();
logArea = new JTextArea(5, 20);