为什么 JScrollPane 没有出现在我的 JTextField 周围?
Why does the JScrollPane not appear around my JTextField?
我是 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
,因为您可以直接将 scrollPane
添加到 NutPad
面板中。
private NutPad() {
setLayout(new BorderLayout());
add(makeScrollPane(), BorderLayout.CENTER);
}
private JScrollPane makeScrollPane() {
JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
return scrollPane;
}
现在您的文本区域将填满框架,并且当文本占用的空间超过可用空间时将出现滚动条 space。
希望对您有所帮助:)
我是 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
,因为您可以直接将 scrollPane
添加到 NutPad
面板中。
private NutPad() {
setLayout(new BorderLayout());
add(makeScrollPane(), BorderLayout.CENTER);
}
private JScrollPane makeScrollPane() {
JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
return scrollPane;
}
现在您的文本区域将填满框架,并且当文本占用的空间超过可用空间时将出现滚动条 space。
希望对您有所帮助:)