1

在我正在做的一个项目中,我有一组 JTextPane 包装在 JFrame 内的 JPanel 中。当程序实际运行时,JTextPane 可以是各种大小,并且无法预测它们的大小,除非它是硬编码的。为了确保所有 JTextPane(位于 JPanel 内)都可以查看,我将所有内容都放在了滚动窗格中。这里有一个问题:如果需要,我希望 JTextPane 延伸到 JScrollPane 的底部,但我不希望它们延伸到侧面。我还希望 JPanels/JTextPanes 占用尽可能多的水平空间,而不需要使用水平滚动条。这意味着如果窗口水平调整大小,JTextPanes 需要调整大小以填充水平空间。JTextPanes 首先包装在使用 Netbeans GUI 构建器提供的“GroupLayout”的面板中,然后包装在使用 BoxLayout 的面板中。它是 BoxLayout 的原因是我通过代码向它添加了新元素(JTextPane 包装在面板中)。使用 BoxLayout 更容易做到这一点。

我尝试将 JTextPane 的首选宽度设置为Integer.MAX_VALUE,但这只是导致它们向右延伸出站点。然后我尝试禁用水平滚动条,但 JTextPanes 仍然向右延伸。现在我什至无法滚动查看它们!最后,我尝试使用一个事件来捕获 JFrame 调整大小时,然后我会调用方法来使树中的所有内容都调整大小。但这似乎根本不起作用。我通过尝试将每个 JTextPane 的首选宽度设置为 JFrame 的首选宽度来做到这一点,但它似乎没有任何效果。

如果我将内部 JTextPane 的宽度设置为427在此处输入图像描述

如果我将 JTextPane 的大小保留为“默认”(我相信是Integer.MAX_VALUE),这就是我所拥有的: 在此处输入图像描述

万一这很重要,我使用的是 Netbeans GUI 构建器(Matisse),所以我更喜欢不涉及更改布局管理器的解决方案,但我会对此持开放态度。请注意,正如我上面所说,BoxLayout 在某些面板中使用,它实际上是问题的一部分。

4

0 回答 0