Swing/Java: How to use the getText and setText string properly
192,820
Solution 1
You are setting the label text before the button is clicked to "txt". Instead when the button is clicked call setText()
on the label and pass it the text from the text field.
Example:
label1.setText(nameField.getText());
Solution 2
in your action performed method, call:
label1.setText(nameField.getText());
This way, when the button is clicked, label will be updated to the nameField text.
Solution 3
the getText
method returns a String, while the setText
receives a String, so you can write it like label1.setText(nameField.getText());
in your listener.
Author by
Opoe
Updated on July 21, 2020Comments
-
Opoe almost 4 years
I'm trying to make input
nameField
appear in aLabel
calledlabel1
after aButton
calledbutton1
is clicked. Right now it says: 'txt' and I understand why. But I don't know how I can use the string! Can anyone explain me what I'm doing wrong and how to use this string properly?import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class thisismytest2 { public static void main(String[] args) { final JFrame frame = new JFrame(); JPanel panel = new JPanel(); JTextField nameField = new JTextField("...", 2); JButton button1 = new JButton(); final JLabel label1 = new JLabel(); label1.setText("txt"); label1.setVisible(false); String txt = nameField.getText(); frame.add(panel); panel.add(button1); panel.add(label1); frame.setSize(200,200); frame.setVisible(true); panel.add(nameField); frame.setSize(600,400); nameField.setBounds(400, 40, 400, 30); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { label1.setVisible(true); } }); } }
-
Opoe about 13 yearsThank you for your quick response, and then i can remove setText from the row above?
-
MBU about 13 yearsyes you dont need it there unless you want it to have a default text.
-
Opoe about 13 yearsSo i don't even need String txt = nameField.getText ? :o
-
jzd about 13 years@Opoe, you only need to save the text into a String variable if you intend on using it elsewhere.
-
jzd about 13 yearsthis link is to an old version of Java.
-
Opoe about 13 yearsokay thanks, the error says the nameField has to be declared final. Do i have to add final before JTextField?
-
Opoe about 13 yearsSorry i got it :) Thank you so much for your time and help appreciate it!