1

ログインフレームからプロジェクトのすべてのフレームにデータ(値)を渡したり共有したりしたいのですが、Hはこの変数のクラスを次のように作成しました

public class SharedData {

    public  String LoginName;

    public SharedData() {
    }

    /**
     * @return the LoginName
     */
    public String getLoginName() {
        return LoginName;
    }

    /**
     * @param LoginName the LoginName to set
     */
    public void setLoginName(String LoginName) {
        this.LoginName = LoginName;
    }
}

そして最初のフレーム(ログインフレーム)から、このクラスのオブジェクトを作成し、そのユーザー名を次のように設定します

 public  SharedData  data1=new SharedData();
    data1.setLoginName(Username_Login.getText().toString());

そして2番目のフレームから値を取得します:

public  SharedData  data=new SharedData();
ogin_labelName.setText(data1.getLoginName().toString());

しかし、最終的には機能しません...問題または解決策は何ですか?

前もって感謝します

4

2 に答える 2

2

次のような Bean クラスを作成できます。

public class SharedData {
        public  static String LoginName;

        public static void setLoginName(String LoginName) {
            SharedData.LoginName = LoginName;
        }

        public static String getLoginName() {
            return LoginName;
        }
    }

そして、値を設定するためにこのクラスを呼び出すだけで、別のフォームから値を設定および取得するためにこのクラスを使用します。

SharedData.setLoginName(Username_Login.getText().toString());

値を取得する場合:

ogin_labelName.setText(SharedData.getLoginName(Username_Login.getText().toString()));
于 2013-02-09T11:20:30.457 に答える
0

2 番目のフレームで新しいオブジェクトを作成しています。したがって、明らかに、この 2 番目のオブジェクトには最初のオブジェクトと同じデータは含まれていません。

メッセージをボックスに入れ、別のボックスを開くと、そのメッセージは見つかりません。Java オブジェクトと同じです。

ログイン フレームがメイン フレームを構築するとき、作成した SharedData オブジェクトをメイン フレーム コンストラクター (またはセッター メソッド) に渡す必要があります。

SharedData data1 = new SharedData();
data1.setLoginName(Username_Login.getText().toString());

MainFrame frame = new MainFrame(data1);

また、Java の命名規則を学び、それに従う必要があります。フィールドは小文字で始める必要があり、アンダースコアを含めないでください:userNameLoginの代わりにUsername_Login. toString()また、Stringを呼び出しても意味がありません。

于 2013-02-09T11:13:15.430 に答える