Java 区域问题

Java 区域问题,java,swing,jtextarea,word-wrap,Java,Swing,Jtextarea,Word Wrap,我对java.swing中JTextArea的大小调整有问题。问题是,一旦当前行完成(例如,如果我一直按空格键),它就不会转到第二行,而是继续。当我按enter键时也是一样——它会垂直延伸框。我如何防止这种情况?我用的是GridBagLayout JTextArea MainText = new JTextArea(); MainText.setFont(new Font("Arial", Font.PLAIN, 16)); MainText.setBorder(BorderFactory.cr

我对java.swing中JTextArea的大小调整有问题。问题是,一旦当前行完成(例如,如果我一直按空格键),它就不会转到第二行,而是继续。当我按enter键时也是一样——它会垂直延伸框。我如何防止这种情况?我用的是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);

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

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


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

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

设置
JTextArea

JTextArea MainText = new JTextArea();
MainText.setLineWrap(true);
MainText.setWrapStyleWord(true);
请查看以了解更多详细信息

你也可能会发现通读一些有用的东西

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

panel.add(new JScrollPane(MainText), c);
这将防止
JTextArea
随着更多文本的添加而增长(除非您希望这样做)

设置
JTextArea

JTextArea MainText = new JTextArea();
MainText.setLineWrap(true);
MainText.setWrapStyleWord(true);
请查看以了解更多详细信息

你也可能会发现通读一些有用的东西

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

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

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

这很好,我自己已经设法找到了如何进行换行,但是在我将jscrollpane放置到位之前,该区域仍然在垂直调整大小。有没有办法把边界改回去?它们现在看起来确实不一样了。您需要将
JScrollPane
的边框更改为您想要的边框。通过使用新的JScrollPane(MainText),我并没有给对象命名,所以当我使用BorderFactory.createEmptyBorder()时,我指的是什么?所以不要。将
JScrollPane
的实例分配给一个局部变量…
JScrollPane scrollPane=newjscrollpane(MainText)然后在修改后将引用添加到容器中。这太棒了,我自己设法找到了如何进行换行,但在我将jscrollpane放置到位之前,该区域仍在垂直调整大小。有没有办法把边界改回去?它们现在看起来确实不一样了。您需要将
JScrollPane
的边框更改为您想要的边框。通过使用新的JScrollPane(MainText),我并没有给对象命名,所以当我使用BorderFactory.createEmptyBorder()时,我指的是什么?所以不要。将
JScrollPane
的实例分配给一个局部变量…
JScrollPane scrollPane=newjscrollpane(MainText)修改后,将引用添加到容器中。@MadProgrammer:和+1返回给您。@MadProgrammer:和+1返回给您。