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

标签 java swing jtextpane dynamic-resizing

我想根据面板的大小设置 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/

相关文章:

java - RabbitMQ、docker、单队列、多个消费者

java - 在处理对象树时我应该避免 instanceof 吗?

java - 打印字符串数组中的所有名称

java - ntlm 在 java 中的实现?

java - 如何使用 Caret 从 JTextPane 中判断它在哪一行? ( java )

java - 在 JEditorPane 中编辑 html 内容

java - jsoup 1.8.2 + android,NoClassDefFoundError : Failed resolution of: Ljava/applet/Applet;

java - 如何创建动态组合框作为 JTable 中的编辑器

java - JLabel 未与 GridLayout 正确对齐

java - 如何将框架拆分为多行 View