如何访问Swing JTextField / JPasswordField中的值?

时间:2013-11-30 09:27:42

标签: java swing user-interface jtextfield jpasswordfield

我是Java Swing 开发的新手,我遇到以下问题。

我有一个自定义的 LoginFrame ,它扩展了经典的 JFrame Swing类,以创建用户插入其用户名和密码的登录窗口。

在这堂课中,我有类似的东西:

externalPanel.setLayout(new net.miginfocom.swing.MigLayout("fill"));    
    externalPanel.add(new JLabel("Username"), "w 50%, wrap");
    JTextField userNameTextField = new JTextField(20);    
    externalPanel.add(userNameTextField, "w 90%, wrap");    
    externalPanel.add(new JLabel("Password"), "w 50%, wrap");
    // JTextField pswdTextField = new JTextField(20);
    JPasswordField pswdTextField = new JPasswordField(20);
    externalPanel.add(pswdTextField, "w 90%, wrap");    
    JButton loginButton = new JButton("Login");
    // loginButton.setActionCommand("loginAction");
    loginButton.addActionListener(this);

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        System.out.println("Button LogIn cliccked");    
        firePropertyChange("loginResult", false, loginResult);    
    }

正如您所看到的,当用户单击 JButton loginButton 对象时,我执行了actionPerformed。

好的,我的问题是:从 actionPerformed()^^方法内部,如何访问我的** JTextField userNameTextField JPasswordField pswdTextField 中插入的值?

我该怎么办?

TNX

安德烈

2 个答案:

答案 0 :(得分:2)

JTextField userNameTextField, JPasswordField pswdTextField, JButton loginButton声明为globel。然后你就可以获得这样的价值..

@Override
public void actionPerformed(ActionEvent e) {
    if(e.getSource() == loginButton){
         String name = userNameTextField.getText();
         char[] pass = pswdTextField.getPassword();
         // your remaining operation...
    }

}

答案 1 :(得分:0)

对于JTextField:jTextField.getText()--->返回String

对于JPasswordField:jPasswordField.getPassword()---->返回char []