JScrollPane不起作用

And*_*Evt 1 java swing jscrollpane jtextarea preferredsize

我的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"));
    ...
Run Code Online (Sandbox Code Playgroud)

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

public void setText(String mes) {
    e140TEST2.errorText.append(lineNum + ".   " + mes + "\n");
    lineNum++;
}
Run Code Online (Sandbox Code Playgroud)

添加一些行数后(当文本的高度超过JTextArea时),JScrollPane不起作用(文本不是scrooling).它可以是什么?

cam*_*ckr 6

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

不要硬编码文本区域(或任何组件)的首选大小.添加/删除文本时,首选大小会更改.

而是创建您的文本区域,如:

textArea = new JTextArea(5, 30);
Run Code Online (Sandbox Code Playgroud)

提供初始大小.