1

Java に関連して NetBeans 7 を使用すると、次のクラスがあります...

     public class StaffLogin2 extends JDialog{
         JPasswordField pf = new JPasswordField();

     public static String  username(){
         String staffName=JOptionPane.showInputDialog("Enter Username:");
         return staffName;
     }

...これは、ユーザーからユーザー名 (および後で同様の方法でパスワード) を要求します。結果は JForm であるメイン コード (TillScreen.java) に返され、そこでパスワードと共にレジ システムへのエントリを取得するために使用されます。これらの資格情報を StaffLogin2 クラスから取得するコードは次のとおりです...

      //imports, constructor etc.
     //loads of private voids up here for buttons, actions etc

     public static void main(String args[]){
      java.awt.EventQueue.invokeLater(new Runnable() {

         public void run() {
                StaffLogin2 validate=new StaffLogin2();//Initialises staff log in  
                String user=validate.username();
                String pass=validate.password();
                //Some other code here to validate credentials...

                if(pass.equals(pWd)){
                new TillScreen().setVisible(true);//Kickstarts the main form...
                }
                else{
                    JOptionPane.showMessageDialog(null,"Invalid username...");
                                   //Main form fails to load, program ends
                }

                }
            ///and some other guff
     }
     }
     //TextFields and other form items declared here....

ただし、提供されたユーザー名を他の多くの場所で使用できるようにしたいと考えています。たとえば、テキスト フィールドに表示したり、後で領収書に印刷したりできます。問題は、それを使用して参照すると...

    String somevar=StaffLogin2.username();

...ユーザーは情報の再入力を求められます。ユーザー名はさまざまな場所で使用する必要があるため、この質問を再質問することなくクラスからこのユーザー名を取得できるようにしたいと考えています。ログイン目的で使用された後、このユーザー名を保存する方法はありますか?

間違いなく単純な答え、または圧倒的な「NO!」がある長い質問についてお詫び申し上げます。私は古き良きルーツを持っていますが、これまでのところ答えを出すことはできません. 私はおそらく何か明らかなものを見逃していると思うので、事前に答えてくれてありがとう. みんな乾杯:)

4

1 に答える 1

0

ユーザーにユーザー名を尋ねるメソッドを呼び出しています。StaffLogin2代わりに、次のようにクラスにプライベート フィールドを作成します。

private String username

次のように、ユーザーから返された値を設定します。

public void username()
{
    this.username = JOptionPane.showInputDialog("Enter Username:");
}

次に、クラスにある次のgetterメソッドを呼び出して、このフィールドを別の場所で参照します。StaffLogin2

public String getUsername()
{
    return username;
}

もう 1 つ - このアプリを一度に複数の人が使用することを意図している場合は、メソッドの「静的」修飾子をなくして、クラスをインスタンス化する必要があります。とにかく、おそらくこのようなことのより良い習慣です。

于 2013-08-29T14:46:36.813 に答える