我是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
安德烈
答案 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 []