我在调整 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);
最佳答案
设置lineWrap
和 wrapStyleWord
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/