0

私は netbeans を使用しており、ドラッグ アンド ドロップ GUI を使用して多数のフォーム テキスト フィールドとボタンを作成しました。

ユーザーがローカル データベースからユーザー ID とパスワードを入力するこの素敵なログイン ページを作成しました。入力したユーザー ID を保存して、別のフォーム (「マイ プロファイル」ページ) で使用し、データベースにクエリを実行して取得したいと考えています。そのユーザーに関する詳細。これを行うには、ユーザー ID を currentuser として保存し、別のクラスで使用する必要があります。

私は多くのことを試しましたが、問題は、ユーザーがデータを入力する場所がプライベートな void メソッドであり、そこから変数を取得できないように見えることです。

private void jButton6MouseClicked(java.awt.event.MouseEvent evt) {                                      
    String sql = "select * from user where userid='" +userid.getText()
                + "' and password='" +password.getText()+"'";
    try {
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        if (rs.next()) {
            JOptionPane.showMessageDialog(null, "Welcome"); 
            dispose();
            currentuser = rs.getString("userid");

            HomePageMember form5 = new HomePageMember();
            form5.setVisible(true);
        } else {
            JOptionPane.showMessageDialog(null, 
                        "Sorry, Invalid Login ID or Password");
        }
    } catch(Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

public class LoginPage extends javax.swing.JFrame {
    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement pst = null;
    private String currentuser; 
    public String getText()  {
        return this.currentuser; 
        // something like this, but it doesn't work
    }

//Then in another class have this
displayuserid.setText("currentuser")
4

1 に答える 1

0

申し訳ありませんが、あなたのコードはかなり奇妙です:

  • jButton6MouseClicked はどのクラスに属しますか?
  • あなたのブレースの2つは決して閉じていません。

先に進む方法について説明します: - メソッド jButton6MouseClicked がクラス LogIn に属しているとします。このクラスに必要なのは、クラス属性 currentUser と、この属性の getter だけです。次に、この属性を jButton6MouseClicked 内に設定します (プライベートであるという事実は何も変更しません)。したがって、この currentUser を他のクラスから取得できます。

public class LogIn {

    private String currentUser;

    public String getCurrentUser() {
        return this.currentUser();
    }

    // ... Here code to get the user enter login and password

    private void jButton6MouseClicked(java.awt.event.MouseEvent evt) {  

    // ... same code as yours

    } // Close the brace

} // And the second one

他の場所から LogIn クラスを使用している場合、クラスのインスタンスが login と呼ばれるとしましょう。次のように呼び出して currentUser を取得できます。

login.getCurrentUser();
于 2013-10-22T16:48:55.507 に答える