问题
I am building string ( 3 different objects ) and at the end of string I put a newline when I print in console I get what expected but when I use setText in the textfield I get one line displayed, Is there a way to get the newline in textfield?
while (itr.hasNext())
tx += "\n"+el.getnombre() + " " +other+"\n";
System.out.println(tx);
textfield.setText(tx);
回答1:
JTextField or TextField (not sure which you're using) are for single lines only. If you want a basic multiline text display and you're using Swing, then use a JTextArea. If you're not using Swing, then please tell us which GUI library you are using as this is an important detail that your question should mention.
回答2:
As mentioned before, use JTextArea
instead of JTextField
.
And there either use JTextArea.append(String text)
, or use JTextArea.setText(String text)
.
Option: Appends the given text to the end of the document. This will add text on to the end of your
JTextArea
.Option:
getText()
to get the text from theJTextArea
, then manipulate the String, then usesetText(String text)
to set the text of theJTextArea
to be the new String.
To set the text in a newline you need to add "\n" at the end of your String. Following code shows the second option:
String oldlines = VisualizeArea.getText();
String newline = "your new line"
VisualizeArea.setText(oldlines + "\n" + newline);
来源:https://stackoverflow.com/questions/5453925/newline-n-in-textfield-java