Swing / Java: как правильно использовать строки getText и setText - PullRequest
6 голосов
/ 29 марта 2011

Я пытаюсь заставить ввод nameField появляться в Label с именем label1 после нажатия Button с именем button1.Прямо сейчас он говорит: «TXT», и я понимаю, почему.Но я не знаю, как я могу использовать строку!Может кто-нибудь объяснить мне, что я делаю неправильно и как правильно использовать эту строку?

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);
            }
        });
        }
        }

Ответы [ 4 ]

6 голосов
/ 29 марта 2011

Вы устанавливаете текст метки до нажатия кнопки «txt».Вместо этого при нажатии кнопки вызовите setText() на метке и передайте ей текст из текстового поля.

Пример:

label1.setText(nameField.getText()); 
4 голосов
/ 29 марта 2011

в вашем действии выполнен метод, вызовите:

label1.setText(nameField.getText());

Таким образом, при нажатии кнопки метка будет обновлена ​​до текста nameField.

1 голос
/ 29 марта 2011

метод getText возвращает строку, в то время как setText получает строку, поэтому вы можете записать ее как label1.setText(nameField.getText()); в своем слушателе.

0 голосов
/ 29 марта 2011

Настройка DocumentListener на nameField. Когда nameField обновится, обновите ваш ярлык.

http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JTextField.html

...