我对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;
}
}
由于
答案 0 :(得分:2)
如果您要使用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;
}
现在,您的文本区域将填充框架,当文本占用的空间超过可用空间时,将显示滚动条。
希望有所帮助:)