0

我正在使用 JScrollPane 来保存大面积文本的 JTextArea。我将 TextArea 直接添加到 JFrame,它工作正常。但是我将它添加到滚动窗格并添加滚动窗格,我没有看到文本区域。这是我的SSCCE:

public class foo extends JFrame{
    //gui elements
JTextArea chatMonitor = new JTextArea();

JScrollPane textPane = new JScrollPane();

ChatFrame(final String nickname, final String login, final String server, final String channel){
    setSize(500,500);
    chatMonitor.setEditable(false);
    chatMonitor.setVisible(true);
    textPane.add(chatMonitor);
    textPane.setAutoscrolls(true);
    textPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    textPane.setVisible(true);
    add(textPane);
}
}
4

1 回答 1

5

假设textPane是 a JScrollPane,您永远不应该向它添加组件。

而是使用JScrollPane#setViewportView(Component)

JScrollPane由许多组件组成,它们协同工作,为您提供使组件可滚动所需的功能......

在此处输入图像描述

JScrollPane有一个JViewport,用于包含要滚动的组件。您需要将组件“应用”到视图。

仔细查看如何使用滚动窗格以获取更多详细信息

于 2013-09-20T00:06:22.283 回答