如何根据JPanel的大小设置JTextPane的大小?

时间:2013-09-24 11:12:41

标签: java swing jtextpane dynamic-resizing

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

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

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

2 个答案:

答案 0 :(得分:4)

JPanel默认使用FlowLayout,根据其首选尺寸调整组件的大小。您可以使用BorderLayout,它将尽可能使用最大区域。

除非容器实际使用BorderLayout.CENTER,否则使用BorderLayout之类的约束也无效。不要add的{​​{1}}组件。这将替换组件视图中的所有组件。而是将JScrollPane设置为JTextPane,例如

ViewPortView

阅读:

答案 1 :(得分:3)

您添加了pane两次。请将panel添加到您的基地(JFrame?),并记住实际将JPanel设置为使用BorderLayout