I'm trying to make input nameField
appear in a Label
called label1
after a Button
called button1
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);
}
});
}
}
in your action performed method, call:
This way, when the button is clicked, label will be updated to the nameField text.
the
getText
method returns a String, while thesetText
receives a String, so you can write it likelabel1.setText(nameField.getText());
in your listener.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:
Setup a DocumentListener on nameField. When nameField is updated, update your label.
http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JTextField.html