首页 > 解决方案 > 如何调整 JTextArea 的大小以适应 JFrame 的百分比

问题描述

这绝对是一个菜鸟问题。如何调整两个 JTextArea 面板的大小,使它们看起来像这样:

aaaaaaaaaaaaaa
a   a        a
a   a        a
a   a        a
aaaaaaaaaaaaaa

第一个区域的宽度约为第二个的十分之一。我还必须将它包含在一个新的滚动窗格中,但我已经处理好了。调整大小功能似乎不起作用。

标签: javaswing

解决方案


创建文本区域时,您使用以下内容:

JTextArea textArea1 = new JTextArea(10, 10);
JTextArea textArea2 = new JTextArea(10, 80);

这两个数字为每行中的行数和字符数提供了建议。

然后将它们添加到滚动窗格中:

JPanel panel = new JPanel();
panel.add(textArea1);
panel.add(textArea2);

JScrollPane scrollPane = new JScrollPane( panel );
frame.add(scrollPane):

上面的代码将为您提供固定大小的文本区域。

或者,如果您真的想按百分比进行操作并允许文本区域动态增长/缩小,您可以使用:

JTextArea textArea1 = new JTextArea(10, 1);
JTextArea textArea2 = new JTextArea(10, 1);

然后使用具有适当约束的 GridBagLayout 将它们添加到 JPanel。您需要使用: 1. “填充”约束,允许文本区域随着可用空间的增长而增长。2.“weightx”约束。这将允许您以所需的百分比分配额外的空间。

阅读 Swing 教程中有关如何使用 GridBagLayout的部分以获取更多信息和工作示例。


推荐阅读