如何将JScrollPane添加到此JTextArea?

时间:2015-03-19 18:34:55

标签: java swing jscrollpane jtextarea

(我是java btw的新手) 我有这个未完成的程序,我想在jscrollpane添加jtextarea。但是,我无法让它发挥作用。我试过了

add(new JScollPane(area));

哪个不起作用。我试过了:

panel.add(new JScrollPane(area));

那也没有用。我也尝试过:

area.add(pane);

area.add(new JScrollPane());

但没有任何作用。救命!!!看看

public class Constructor extends JFrame {
private static final long serialVersionUID = 123456789L;

    JScrollPane scroll;
    public JPanel panel;
    static JTextField field;
    static JTextArea area;
    String displayCommand, commandIs;

public Constructor() {

    panel = new JPanel();
    panel.setLayout(getLayout());
    panel.setSize(600, 450);

    scroll = new JScrollPane(area);
    scroll.setBounds(0, 0, 10, 395);


    field = new JTextField();
    field.setSize(595, 25);
    field.setLocation(0, 400);
    field.addActionListener(
            new ActionListener(){
            public void actionPerformed(ActionEvent event){
                showCommand(event.getActionCommand());
                field.setText("");
                }
            }
        );
    area = new JTextArea();
    area.setSize(595,395);
    area.setLocation(0,0);
    area.setEditable(false);
    area.setFont(new Font("Lucida Console", Font.BOLD, 13));
    area.setText("Welcome to JConsole! This Application is for executing commands."
            + "\nType help for more info");

    panel.add(new JScrollPane(area));
    panel.add(area);
    panel.add(field);
    add(panel);

}

这只是我的构造函数,代码中的任何其他内容都不涉及jscrollpane

2 个答案:

答案 0 :(得分:0)

您添加了area两次。第一个是JScrollPane,第二个没有JScrollPane。你应该删除第二部分。

panel.add(new JScrollPane(area));
//panel.add(area); Remove this part.

同时确保area的正确布局。默认情况下,JPanelFlowLayout,但对于JTextArea,它应位于BorderLayout,且中心对齐。

答案 1 :(得分:0)

您可以尝试添加此

scroll.setViewportView(area);