Java 将JScrollPane添加到JTextArea

Java 将JScrollPane添加到JTextArea,java,swing,jpanel,jscrollpane,jtextarea,Java,Swing,Jpanel,Jscrollpane,Jtextarea,在我的程序中,一个用户应该用任意长度的文本填充“Object”字段。 因此,我想创建一个具有合理尺寸的JTextArea和一个相关联的JSrollPane,以便读取所有插入的文本(如果很长的话)。这就是我所做的: body.add(new JLabel("OGGETTO"), "1,2"); JTextArea oggetto = new JTextArea(5,20); oggetto.setOpaque(true); oggetto.setBackgroun

在我的程序中,一个用户应该用任意长度的文本填充“Object”字段。 因此,我想创建一个具有合理尺寸的JTextArea和一个相关联的JSrollPane,以便读取所有插入的文本(如果很长的话)。这就是我所做的:

    body.add(new JLabel("OGGETTO"), "1,2");

    JTextArea oggetto = new JTextArea(5,20);
    oggetto.setOpaque(true);
    oggetto.setBackground(Color.cyan);

    Border borderOgg = BorderFactory.createLineBorder(Color.BLACK);
    oggetto.setBorder(BorderFactory.createCompoundBorder(borderOgg,
            BorderFactory.createEmptyBorder(1, 1, 1, 1)));

    oggetto.setLineWrap(true);
    oggetto.setWrapStyleWord(true);

    JScrollPane scroll1 = new JScrollPane(oggetto);
    scroll1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    body.add(scroll1,"3,2");

    body.add(oggetto, "2,2");
其中body是一个JPanel,其布局为TableLayout。 但是卷轴即使显示也不起作用。 为什么?

删除下面的行

body.add(oggetto, "2,2");

因为
JTextArea
已添加到
JScrollPane
中,因此无需再次添加它。

好的,没错。谢谢…所以,当我们向元素添加JScrollPane时,我们不必将元素添加到jpanel主体中,对吗?非常感谢…我不清楚这一点。我会尽快接受你的回答……上面说我必须等12分钟:我只想指出有一个小的打字错误,我认为应该是
JTextArea
而不是
JTaxtArea
+1@LoryLory
当我们向元素添加一个JScrollPane时,我们不必将元素添加到jpanel主体中,对吗?
-实际上您正在向滚动窗格添加“组件”(请使用正确的术语)。您不能将组件添加到面板中,因为组件只能有一个父组件,因此如果您将组件添加到面板中,它将从滚动窗格中删除。