多行文本框(JTextField)出现问题

4

我有一个JTextField,需要在其中有3行,就像这样:

HI
MY name
is mehdi

如何设置JTextField中的文本?我尝试使用\n,但它没有起作用。

3个回答

24

1: JTextField不支持多行文本,你需要使用JTextArea。

2: 不同系统上的换行符可能不同,如果你在Windows系统中运行程序,你可能需要使用"\r\n"来表示换行。自Java 7起,可以使用System.LineSeparator解决此问题。

(参见Oracle文档)


当你说它不支持时,你一定是比较宽泛地说。我正在尝试找出如何停止它支持多行。是的...我正在处理的东西是一个JTextField。 - Hakanai
很奇怪,我实际上是非常字面的,因为根据http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextField.html,“JTextField是一个轻量级组件,允许编辑单行文本”。 - Timothy Groote
你确定你没有只看到文本换行而非显示实际的多行文本吗?(请注意在Java 8中也没有改变这一点) - Timothy Groote
我想我实际上遇到了a bug。如果您粘贴它,您可以得到多行,自从它在整个应用程序中发生以来,我一直在寻找一个好的解决方案。我想知道它是否在Java 8中修复了。 - Hakanai
我很抱歉重新激活一个旧帖子,但我只是想加上这个评论,因为我花了很长时间才理解。如果我在JPanel中有一个JTextArea字段,并且我正在使用.getText(),那么我需要按下回车或制表符键来换行或制表符,我不能输入“\n”或“\t”。 - Everlight
显示剩余2条评论

3

1
JTextArea taText = new JTextArea();
taText.setText("\tHI\nMY name\nis Raku");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接