我想根据面板的大小设置 JTextPane 的大小,以便当我添加其他面板时,它会相应地改变。但它只是在中心提供了一个小文本 Pane ,当我添加一些文本时,它的大小会相应改变。
JPanel panel = new JPanel();
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane();
pane.add(txt);
panel.add(pane,BorderLayout.CENTER);
add(pane);
现在 jtextpane 就像一个小盒子一样出现在屏幕中央。我希望它根据面板的大小显示
最佳答案
JPanel
默认使用 FlowLayout
,它根据组件的首选大小调整组件的大小。您可以使用 BorderLayout
,它将使用尽可能大的区域。
除非容器实际使用 BorderLayout
,否则使用 BorderLayout.CENTER
等约束也不会产生任何效果。不要向 JScrollPane
中添加
组件。这将替换组件 View 内的所有组件。例如,将 JTextPane
设置为 ViewPortView
JPanel panel = new JPanel(new BorderLayout());
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane(txt);
// pane.add(txt); remove
panel.add(pane, BorderLayout.CENTER);
阅读:
关于java - 如何根据JPanel的大小设置JTextPane的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18980044/