Java 为什么JScrollPane没有出现在我的JTextField周围?

Java 为什么JScrollPane没有出现在我的JTextField周围?,java,swing,jscrollpane,jtextarea,Java,Swing,Jscrollpane,Jtextarea,我对GUI非常陌生,但我正在尝试创建一个简单版本的记事本,并希望在文本区域周围显示滚动条。然而,我不知道为什么它没有出现 public class NutPad extends JPanel { public static void main(String[] args) { JFrame frame = new JFrame("NutPad"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.

我对GUI非常陌生,但我正在尝试创建一个简单版本的记事本,并希望在文本区域周围显示滚动条。然而,我不知道为什么它没有出现

public class NutPad extends JPanel {

public static void main(String[] args) {

    JFrame frame = new JFrame("NutPad");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(new NutPad(), BorderLayout.CENTER);
    frame.setSize(500,300);
    frame.setVisible(true);
}

private NutPad() {
    add(makeTextAreaPanel());

}

private JPanel makeTextAreaPanel() {
    JPanel textAreaPanel = new JPanel();
    textAreaPanel.setSize(100,100);

    JTextArea textArea = new JTextArea(20, 60); //15,43
    JScrollPane scrollPane = new JScrollPane(textArea); 

    textAreaPanel.add(scrollPane,BorderLayout.CENTER);
    textAreaPanel.add(textArea);

    return textAreaPanel;
}

}

谢谢

如果要使用
BorderLayout.CENTER
约束,则容器需要将其布局设置为
BorderLayout

此外,您不需要
textAreaPanel
,因为您只需将
滚动窗格
直接添加到
NutPad
面板中即可

private NutPad() {
    setLayout(new BorderLayout());
    add(makeScrollPane(), BorderLayout.CENTER);
}

private JScrollPane makeScrollPane() {
    JTextArea textArea = new JTextArea();
    JScrollPane scrollPane = new JScrollPane(textArea);

    return scrollPane;
}
现在,文本区域将填满框架,当文本占用的空间超过可用空间时,滚动条将出现


希望有帮助:)

如果要使用
BorderLayout.CENTER
约束,则容器需要将其布局设置为
BorderLayout

此外,您不需要
textAreaPanel
,因为您只需将
滚动窗格
直接添加到
NutPad
面板中即可

private NutPad() {
    setLayout(new BorderLayout());
    add(makeScrollPane(), BorderLayout.CENTER);
}

private JScrollPane makeScrollPane() {
    JTextArea textArea = new JTextArea();
    JScrollPane scrollPane = new JScrollPane(textArea);

    return scrollPane;
}
现在,文本区域将填满框架,当文本占用的空间超过可用空间时,滚动条将出现


希望有帮助:)

删除
textAreaPanel.add(textArea),您的文本区域已添加到滚动窗格。好的,谢谢!不确定它是否已经这样做了。但无法解决问题:(删除
textAreaPanel.add(textArea);
,您的textArea已添加到滚动窗格中。好的,很酷,谢谢!不确定是否已经添加了。但无法解决问题:(哇,非常感谢!我决定制作一个面板,因为我将添加其他位。没问题。很高兴它有帮助。如果您愿意,您可以单击此答案旁边的勾号接受它。您将为此获得分数,我也将:)您只能将一个答案标记为已接受答案。哇,非常感谢!我决定制作一个面板,因为我将添加其他位。没问题。很高兴它有所帮助。如果您愿意,您可以单击此答案旁边的勾号以接受它。您将为此获得分数,我也将:)您只能将一个答案标记为已接受答案。