我在一个 JPanel 中有一个 JTextArea。如何让 JTextArea 填充整个 JPanel,并在 JPanel 调整大小时调整大小,在输入太多文本时滚动显示?
我在一个 JPanel 中有一个 JTextArea。如何让 JTextArea 填充整个 JPanel,并在 JPanel 调整大小时调整大小,在输入太多文本时滚动显示?
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout()); //give your JPanel a BorderLayout
JTextArea text = new JTextArea();
JScrollPane scroll = new JScrollPane(text); //place the JTextArea in a scroll pane
panel.add(scroll, BorderLayout.CENTER); //add the JScrollPane to the panel
// CENTER will use up all available space
请参阅http://download.oracle.com/javase/6/docs/api/javax/swing/JScrollPane.html或http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html,了解有关JScrollPane更多的详细信息。
将JTextArea放置在JScrollPane内,并将其放入具有固定大小的JPanel中。例如,使用GridBagLayout的示例可能如下所示:
JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());
JScrollPane scrollpane = new JScrollPane();
GridBagConstraints cons = new GridBagContraints();
cons.weightx = 1.0;
cons.weighty = 1.0;
panel.add(scrollPane, cons);
JTextArea textArea = new JTextArea();
scrollPane.add(textArea);