私はJavaSwingを使用して、初めてのGUIプログラムに取り組んでいます。ユーザー名とパスワードを読み込んで、ローカルデータベースに一致するユーザー名とパスワードの組み合わせがあるかどうかを確認するログインフォームクラスがあります。ある場合は、JFrameオブジェクトからメインクラスにユーザー名を返すことができるようにしたいと思います。これは、ログインボタンをクリックしたときにアクションが発生した後にのみ発生する可能性があります。
その特定の時間の後にこのクラスを返す方法がわかりません。
public class Login extends JFrame {
//declaration of components
private JTextField userText = new JTextField(12);
private JPasswordField passText = new JPasswordField(12);
//declaration of variables
String username;
String password;
//...
class loginAction extends AbstractAction{
loginAction(){
super("Login");
putValue(SHORT_DESCRIPTION, "Click to login");
}
public void actionPerformed(ActionEvent e){
userLogin();
}
}
public String userLogin(){
String sql = "SELECT * from Employees " +
"WHERE Username = ? AND Password = ?";
try(PreparedStatement ps = con.prepareStatement(sql)){
ps.setString(1, userText.getText());
ps.setString(2, new String(passText.getPassword()));
ResultSet rs = ps.executeQuery();
if(rs.next())
//RETURN USERNAME BACK TO MAIN CLASS...How?
else
JOptionPane.showMessageDialog(this, "Incorrect username or password.", "", JOptionPane.ERROR_MESSAGE);
}
catch (SQLException e) {
utils.Print.print(e.getMessage());
printSuppressed(e);
}
finally{
}
}
//...
Login(Connection connect){
///...
JButton login = new JButton(new loginAction())
//...
}