0

I have a JTextArea and would like to be able to add multiple arguments to like so: messageArea.setText("Hi", name, "how are you today?"); However, I am unable to do so, I do not know how to add multiple arguments to the JTextArea.

mKorbel
  • 109,525
  • 20
  • 134
  • 319
Harry Kitchener
  • 255
  • 1
  • 2
  • 8
  • Do you mean concatenation of strings? Like combine those three strings so they can be passed as one string? If so, just use '+'. So it would be "hi" + name + " how are you today?" – Kyle Jun 05 '14 at 19:21

1 Answers1

2

The setText() method takes a single String argument, so you have to concatenate the strings, you want to display.

StringBuilder sb = new StringBuilder();
sb.append("Hi").append(name).append(", how are you?");
messageArea.setText(sb.toString());

Other method is to simply use the + operator:

messageArea.setText("Hi"+name+"...");

Or use the MessageFormat class:

messageArea.setText(MessageFormat.format("Hi {0} how are you?", name));
Balázs Édes
  • 13,452
  • 6
  • 54
  • 89
  • 1
    Why use `StringBuilder` instead of `+`? – Braj Jun 05 '14 at 19:27
  • 1
    I am not talking about to do it using `+`. Read it [here](http://stackoverflow.com/questions/65668/why-to-use-stringbuffer-in-java-instead-of-the-string-concatenation-operator) and [here](http://stackoverflow.com/questions/4645020/when-to-use-stringbuilder-in-java) just for your learning and then update the post with your findings. – Braj Jun 05 '14 at 19:28
  • Agreed, StringBuilder is a bit too much, but the rest of the answer is great. – hooknc Jun 05 '14 at 19:30
  • 1
    If you concatenate multiple strings, its always a good practice to use the mutable StringBuilder class instead of wasting resources with + concatenation. In this case it's really not much, but since OP looks like a beginner, it's good to hear about it. – Balázs Édes Jun 05 '14 at 19:30
  • Generally, in JDK 1.6+, the compiler will change the ```+``` to use ```StringBuilder``` anyways. – David Yee Jun 05 '14 at 19:33