java - JTextArea 问题

标签 java swing jtextarea word-wrap

我在调整 java.swing 中的 JTextArea 大小时遇到​​问题。问题是,一旦当前行完成(例如,如果我一直按空格键)——它不会转到第二行——它只会继续前进。当我按下 enter 键时,同样的事情发生了——它垂直地拉伸(stretch)了盒子。我该如何防止这种情况?我正在使用 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);

最佳答案

设置lineWrapwrapStyleWord JTextArea

的属性
JTextArea MainText = new JTextArea();
MainText.setLineWrap(true);
MainText.setWrapStyleWord(true);

看看How to use Text Areas了解更多详情

您可能还会发现通读 Code Conventions for the Java Programming Language有一定的用处

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

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

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

关于java - JTextArea 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19530727/

相关文章:

java - 将选定的 JRadioButton 中的文本显示到 JTextArea

java - Selenium Web 驱动程序 - 无法使用动态 iframe id 切换到 iframe

java - 自定义 ListCellRenderer 的 JList 显示错误

java - 覆盖 JTextArea.getDocument.remove()?

java - 如何使用 JLabel 添加水平间隙

java - 如何在 JList 中的组件上启用事件

java - 在java中添加文本区域到选项卡式 Pane

java - 如何使用 ArrayList 中的字符串填充 ViewPager?

java - 与子类的动态绑定(bind) "no suitable method found"

java - Gson按值对TreeMap的ArrayList进行排序