0

我想根据面板的大小设置 JTextPane 的大小,这样当我添加其他面板时,它会相应地改变。但它只是在中心提供一个小文本窗格,当我添加一些文本时,它的大小会相应改变。

JPanel panel = new JPanel();
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane();
pane.add(txt);
panel.add(pane,BorderLayout.CENTER);
add(pane);

现在 jtextpane 就像一个小盒子一样出现在屏幕的中心。我希望它根据面板的大小出现

4

2 回答 2

6

JPanelFlowLayout默认情况下,根据组件的首选尺寸使用其尺寸。您可以使用BorderLayout将使用可能的最大区域。

BorderLayout.CENTER除非容器实际使用BorderLayout. 不要add将组件添加到JScrollPane. 这将替换组件视图中的所有组件。而是将 设置JTextPaneViewPortView,例如

JPanel panel = new JPanel(new BorderLayout());
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane(txt);
// pane.add(txt); remove
panel.add(pane, BorderLayout.CENTER);

读:

于 2013-09-24T11:17:26.780 回答
3

你加了pane两次。改为添加panel到您的基础(a JFrame?)并记住实际设置您JPanel的使用BorderLayout.

于 2013-09-24T11:20:15.710 回答