0

私はOODの初心者で、アカデミックプロジェクトに取り組んでいます。プログラミング中に問題が発生しました。

シナリオは、「ログイン」クラスのオブジェクトを作成し、その関数を呼び出すメインクラスがある場合です。

ここで、その「ログイン」クラス関数で、ユーザーがログイン情報を入力してログインボタンを押すログインビューを表示するjFrameクラスのオブジェクトを作成します。

ここで、ユーザーがログインボタンを押したときに、その情報を「ログイン」クラスの認証関数に渡す必要があります。

問題は、どうすればその関数(非静的関数)を呼び出すことができ、無効な情報があればjFrameクラスの関数を呼び出してエラーメッセージを表示できるかということです。

そして、この関数呼び出しをプロジェクト全体で実行したいと思います。

4

2 に答える 2

2

たぶん、あなたはあなたのプログラムを少し再設計する必要があります。ログインクラスはJFrameを作成してはなりません。ログインクラスがユーザーとその関連機能の認証に集中できるようにします。だからこのようなもの:

  public class Login{

      public boolean authenticate(String uname, String pword){
           return .......
      }

  }

Loginの関数を使用する必要があるときはいつでも、それをインスタンス化して関数を呼び出すことができます。たとえば、ユーザーにユーザー名とパスワードの入力を求め、ボタンを押すだけのJFrameを作成できます。

         loginBtn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){

                      Login login = new Login();
                      if(login.authenticate(txtUname.getText(), txtPWord.getText())){
                              //display success on JFrame
                      }else{
                              //display failure on JFrame
                      }
                }
          });

ここで、txtUnameとtxtPWordはJFrameの2つのJTextFieldであり、lginBtnはJFrameのボタンである可能性があります。

同じ関数を別の場所で実行する必要がある場合は、ログインを再度インスタンス化して関数を呼び出します。

于 2012-12-08T18:40:41.053 に答える
0

これは、 How-to-create-a-login-form-in-javax.swingの優れた実用的な例です。

Javaビギナースイングのスイングチュートリアルリンク

于 2012-12-08T18:44:09.657 に答える