0

我是 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 userNameTextFieldJPasswordField pswdTextField中的值?

我该怎么办?

肿瘤坏死因子

安德烈亚

4

2 回答 2

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...
    }

}
于 2013-11-30T09:33:52.067 回答
0

对于 JTextField:jTextField.getText() ---> 返回字符串

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

于 2013-11-30T09:38:55.500 回答