1

我在 java.swing 中调整 JTextArea 的大小时遇到​​问题。问题是,一旦当前行完成(例如,如果我继续按空格键) - 它不会进入第二行 - 它只会继续。当我按下回车键时也是如此 - 它垂直拉伸盒子。我该如何防止这种情况?我正在使用 GridBagLayout。

JTextArea MainText = new JTextArea();
MainText.setFont(new Font("Arial", Font.PLAIN, 16));
MainText.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
c.fill = GridBagConstraints.BOTH;
c.insets = new Insets (10, 10, 10, 10);
c.gridx = 0;
c.gridy = 2;
c.weightx = 1.0;
c.weighty = 1.0;
c.gridwidth = 3;
c.gridheight = 1;
panel.add(MainText, c);
4

2 回答 2

3

要让您的 JTextAreas 在单词上适当换行,请使用:mainText.setWrapStyleWord(true)mainText.setLineWrap(true)

最重要的是,要非常熟悉 Java API 的使用,因为它可能会回答 90% 的类似问题:

JTextArea API

于 2013-10-23T00:32:41.990 回答
3

设置lineWrapwrapStyleWord属性JTextArea

JTextArea MainText = new JTextArea();
MainText.setLineWrap(true);
MainText.setWrapStyleWord(true);

查看如何使用文本区域了解更多详细信息

您可能还会发现阅读了某些用途的 Java 编程语言的代码约定

除非您真的不想这样做,否则我还建议将其添加JTextArea到 aJScrollPane中,而不是将其直接添加到容器中

panel.add(new JScrollPane(MainText), c);

这将防止JTextArea随着添加更多文本而想要增长(除非这就是你想要的)

于 2013-10-23T00:33:54.700 回答