我想根据面板的大小设置JTextPane的大小,这样当我添加其他面板时,它会相应地改变。但它只是在中心提供了一个小文本窗格,当我添加一些文本时,它的大小会相应地改变。
JPanel panel = new JPanel();
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane();
pane.add(txt);
panel.add(pane,BorderLayout.CENTER);
add(pane);
现在jtextpane就像一个小盒子一样出现在屏幕的中央。我希望它根据面板的大小显示
答案 0 :(得分:4)
JPanel
默认使用FlowLayout
,根据其首选尺寸调整组件的大小。您可以使用BorderLayout
,它将尽可能使用最大区域。
除非容器实际使用BorderLayout.CENTER
,否则使用BorderLayout
之类的约束也无效。不要add
的{{1}}组件。这将替换组件视图中的所有组件。而是将JScrollPane
设置为JTextPane
,例如
ViewPortView
阅读:
答案 1 :(得分:3)
您添加了pane
两次。请将panel
添加到您的基地(JFrame
?),并记住实际将JPanel
设置为使用BorderLayout
。