添加垂直和水平滚动到textarea

时间:2014-05-03 20:42:59

标签: java swing user-interface jscrollpane jtextarea

我需要创建一个带水平和垂直滚动的textarea。我做了以下事情:

public class Standard extends JFrame {

    public static void main(String[] args) {
        Standard frame = new Standard();
    }

    JPanel panel = new JPanel();

    JTextAreaWithScroll body = new JTextAreaWithScroll(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    Standard() {
        super("Standard");
        setSize(800, 600);
        setLocation(300, 50);
        panel.setLayout(null);

        panel.add(body.getScrollPane());

        getContentPane().add(panel);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
}

class JTextAreaWithScroll extends JTextArea {

    private JScrollPane scrollPane;

    public JTextAreaWithScroll(int vsbPolicy, int hsbPolicy) {
        scrollPane = new JScrollPane(this, vsbPolicy, hsbPolicy);
    }

    public JScrollPane getScrollPane() {
        return scrollPane;
    }
}

但是当我运行该文件时没有显示任何内容。我该怎么办? 谢谢

1 个答案:

答案 0 :(得分:0)

绝对不需要扩展JTextArea来使用JScrollPane。

基本代码是:

JTextArea textArea = new JTextArea(5, 20); // specify rows and columns
JScrollPane scrollPane = new JScrollPane( textArea );
panel.add( scrollPane );

此外,不要为您的面板使用空布局,因为滚动窗格不会出现,因为布局管理器负责确定textarea和scrollpane的大小。

事实上,你甚至不需要一个小组。只需将scrollPane直接添加到框架中即可。