0

好的,我在 ScrollPanes 上度过了一段不可能的时光。这是我的构造函数:

private static JTextField field = new JTextField();
private static JTextArea pane = new JTextArea();
public Client(){
    JButton close = new JButton("Close");
    close.setMnemonic(KeyEvent.VK_C);
    close.addActionListener(new closeList());
    JButton send = new JButton("Send");
    send.setMnemonic(KeyEvent.VK_S);
    send.addActionListener(new sendList());
    JPanel buttonPanel = new JPanel(new GridLayout(1, 2));
    buttonPanel.add(send);
    buttonPanel.add(close);

    JScrollPane scroll = new JScrollPane(pane);

    pane.setLineWrap(true);
    pane.setWrapStyleWord(true);
    pane.setEditable(false);        
    Container tupper = getContentPane();
    tupper.add(field, BorderLayout.PAGE_START);
    tupper.add(pane, BorderLayout.CENTER);
    tupper.add(scroll, BorderLayout.EAST);
    tupper.add(buttonPanel, BorderLayout.PAGE_END);
}

所以,滚动窗格在那里,但 id 没有做任何事情。我试过用 bar 代替窗格,但都是一样的。所有在线示例都使用了一些特殊的 awt 布局。有什么方法可以让我的 textarea 可滚动吗?

4

1 回答 1

2

您要添加pane两次:一次是 的孩子,scroll一次是直接添加到tupper. 一个组件一次只能有一个父级。尝试删除此行:

tupper.add(pane, BorderLayout.CENTER);
于 2012-07-07T15:56:26.897 回答