1

2 つのクラスを接続する方法に問題があります。私がしたいことは、ユーザーがログインすると、GradingSystemクラスが実行され、MS ACCESS データベースに基づいてユーザーの情報が自動的に表示されることです。どういうわけか、ログインクラスを他のクラスに呼び出したり接続したりする方法がわかりません。

ログインクラス

private class ButtonHandler implements ActionListener{
  @Override
  public void actionPerformed(ActionEvent e) {
    DatabaseDriver driver = new DatabaseDriver();
    Object source = e.getSource();

    if (source == btnLogin) {
      try {
        String username = txtUserName.getText();
        String password = String.valueOf(txtPassword.getPassword());
        String query =
               "Select username,password from [useraccount] where [username]='"
               + username + "' and [password]='" + password+"'";
        driver.selectQuery(query);
        ResultSet rsLogin = driver.rs;
        if (rsLogin.next()) {
          String logo = "img/seal_TIP.png";
          java.net.URL addURL = getClass().getClassLoader().getResource(logo);
          ImageIcon image1 = new ImageIcon(addURL);
          JOptionPane.showMessageDialog(null, "Welcome to your TIP account.",
                     "Login Success", JOptionPane.INFORMATION_MESSAGE, image1);
          dispose();
          new GradingSystem().run();
        } else {
          JOptionPane.showMessageDialog(null, "Incorrect Username or Password.",
                     "User Not Found!", JOptionPane.INFORMATION_MESSAGE);
        }
      } catch (SQLException ex) {
      }

グレーディングシステムクラス

DatabaseDriver driver = new DatabaseDriver();

 String query = "Select lastName from [useraccount] where [username]='"
                 +login.username+"' and [password]='"+login.password+"'";
 driver.selectQuery(query);
 ResultSet rsGradingSystem = driver.rs;
   try {
     if (rsGradingSystem.next()) {
       JLabel studName= new JLabel("Name: ");
       studName.setBounds(15,60,150,20);
       add(studName);
     }
   } catch (SQLException ex) {
   }
4

1 に答える 1

1

ログインクラスでいくつかの静的フィールドを使用し、ログイン後に入力すると、 GradingSystem クラスでそれらを使用できます。

何かのようなもの:

public static string UserName;
public static string Password;

および GradingSystem では次を使用します。

DatabaseDriver driver = new DatabaseDriver();

 String query = "Select lastName from [useraccount] where [username]='"+Login.UserName+"' and [password]='"+Login.Password+"'";
 driver.selectQuery(query);
 ResultSet rsGradingSystem = driver.rs;
    try {
        if (rsGradingSystem.next()) {
           JLabel studName= new JLabel("Name: ");
           studName.setBounds(15,60,150,20);
           add(studName);
        }
    } catch (SQLException ex) {

    }

ログイン後、忘れずに入力してください。

于 2013-10-13T11:26:29.953 に答える