Java 为什么JScrollPane没有出现在我的JTextField周围?
我对GUI非常陌生,但我正在尝试创建一个简单版本的记事本,并希望在文本区域周围显示滚动条。然而,我不知道为什么它没有出现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.
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已添加到滚动窗格中。好的,很酷,谢谢!不确定是否已经添加了。但无法解决问题:(哇,非常感谢!我决定制作一个面板,因为我将添加其他位。没问题。很高兴它有帮助。如果您愿意,您可以单击此答案旁边的勾号接受它。您将为此获得分数,我也将:)您只能将一个答案标记为已接受答案。哇,非常感谢!我决定制作一个面板,因为我将添加其他位。没问题。很高兴它有所帮助。如果您愿意,您可以单击此答案旁边的勾号以接受它。您将为此获得分数,我也将:)您只能将一个答案标记为已接受答案。