首页 文章

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

提问于
浏览
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()^^ method how can I access to the values inserted in my JTextField userNameTextFieldJPasswordField pswdTextField 内部?

我该怎么办?

TNX

安德里亚

2 回答

  • 0

    宣布 JTextField userNameTextField, JPasswordField pswdTextField, JButton loginButton 为globel . 然后你可以得到这样的 Value ..

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

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

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

相关问题