将JTextField的内容放入变量-Java&;摆动

将JTextField的内容放入变量-Java&;摆动,java,swing,jtextfield,Java,Swing,Jtextfield,因此,我创建了一个小型java应用程序,我只是想知道如何获取JTextField的内容,然后将该值赋给一个字符串变量,我认为下面的方法可行: JTextField txt_cust_Name = new JTextField(); String cust_Name; txt_cust_Name.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

因此,我创建了一个小型java应用程序,我只是想知道如何获取JTextField的内容,然后将该值赋给一个字符串变量,我认为下面的方法可行:

JTextField txt_cust_Name = new JTextField();
String cust_Name;
txt_cust_Name.addActionListener(new ActionListener() 
{
    public void actionPerformed(ActionEvent e) 
    {
         cust_Name = txt_cust_Name.getText();
    }
});
现在我认为这将把JtextField的值发送到字符串Cust_Name中

有人有什么想法吗


干杯。

只有当按下Enter键时,才会触发ActionListener

也许您应该使用FocusListener并处理focusLost()事件


或者,您也可以将DocumentListener添加到文本字段的文档中。每次对文本字段进行更改时,都会触发DocumentEvent。

通常,JTextField位于表单上,用户可以一直玩到点击表单上的Ok按钮为止。然后,该按钮的处理程序(一个
ActionListener
)从字段中获取当前文本值并对其进行处理

你想做一些完全不同的事情吗?您是否需要在输入更改时响应输入,还是仅在用户离开字段时响应输入?还是他按回车键很重要


请注意,这种非标准行为可能会在现实生活中混淆用户。当然,如果您只是为自己做这件事,一切都会顺利。

如果您需要实际使用字符串变量,您可以说:

String cust_Name = txt_cust_Name.getText();

这是假设在您试图访问此值的时间点,它已被输入。。。(与每次按下键时更新变量不同)

谢谢大家,我选择在按下按钮时分配值:

JButton btn_cust_Save = new JButton("Save Customer");
                       btn_cust_Save.addActionListener(new ActionListener()
                       {
                            public void actionPerformed(ActionEvent ae)
                            {
                                final String cust_Name = txt_cust_Name.getText();
                                final String cust_Door = txt_cust_Door.getText();
                                final String cust_Street1 = txt_cust_Street1.getText();
                                final String cust_Street2 = txt_cust_Street2.getText();
                                final String cust_City = txt_cust_City.getText();
                                final String cust_PCode = txt_cust_PCode.getText();
                                final String cust_Phone = txt_cust_Phone.getText();
                                final String cust_Email = txt_cust_Email.getText();
                            }
                        });

谢谢您的帮助。

我发现这段代码运行得非常好:

package test;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Test extends JFrame {

private static final long serialVersionUID = -5624404136485946868L;

String userWord = "";
JTextField userInput;

public Test() {
    JFrame jf = new JFrame();
    JPanel panel = new JPanel();
    JLabel jl = new JLabel("Test");
    JButton jButton = new JButton("Click");
    userInput = new JTextField("", 30);
    jButton.addActionListener( (e) -> {
        submitAction();
    });
    jf.setSize(500, 500);
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.add(panel);
    panel.add(jl);
    panel.add(userInput);
    panel.add(jButton);
}

private void submitAction() {
    userWord = userInput.getText();
    System.out.println(userWord);//do whatever you want with the variable, I just printed it to the console
}

public static void main(String[] args) {
    new Test();
}
}