我的JScrollPane在JTextArea周围:

    ...
    errorText = new JTextArea();
    errorText.setLineWrap(true);
    errorText.setWrapStyleWord(true);
    errorText.setPreferredSize(new Dimension(300, 150));

    JScrollPane scrollPane = new JScrollPane(errorText);
    scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    scrollPane.setBorder(BorderFactory.createTitledBorder("Info Area"));
    ...


和代码,将文本添加到errorText:

public void setText(String mes) {
    e140TEST2.errorText.append(lineNum + ".   " + mes + "\n");
    lineNum++;
}


添加了几行后(当文本的高度比JTextArea高时),JScrollPane不起作用(文本不脚)。可以是什么?

最佳答案

errorText.setPreferredSize(new Dimension(300,150));


不要硬编码文本区域(或任何组件)的首选大小。首选大小随您添加/删除文本而变化。

而是像这样创建您的文本区域:

textArea = new JTextArea(5, 30);


提供初始大小。

09-17 02:59