Java: JLabel for output
Why using JLabel for output is usually bad
It's possible to change the text of a JLabel, although this is
not generally a good idea after the user interface is already displayed.
For output JTextField is often a better choice.
The use of JLabel for output is mentioned because some textbooks
display output this way.
Here are some reasons not to use it.
- Can't copy to clipboard. The user can not copy text from a
JLabel, but can from aJTextField. - Can't set background. Changing the background of individual
components probably isn't a good idea, so this restriction on
JLabelsis not serious. You can change the background of aJTextField, for better or worse. - Text length. This is where there are some serious
issues. You can always see the entire text
in a
JTextField, altho you might have to scroll it it's long. There are several possibilities with aJLabel. You may either not see all of the long text in aJLabel, or putting long text into aJLabelmay cause the layout to be recomputed, resulting in a truly weird user experience.
Changing the text of a JLabel
Most JLabels are never changed, except for internationalization, and that is done before the user interface is shown. To change the text, use
yourLabel.setText(String newText); //