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());

从第二帧我得到值:

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

您正在第二帧中创建一个新对象。很明显,第二个对象不包含与第一个对象相同的数据。

如果您将消息放入一个盒子,然后打开另一个盒子,您将不会在其中找到该消息。与 Java 对象相同。

当登录框架构造主框架时,它应该将它创建的 SharedData 对象传递给主框架构造函数(或传递给一个 setter 方法):

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

MainFrame frame = new MainFrame(data1);

您还应该学习 Java 命名约定并遵守它们。字段应以小写字母开头,并且不应包含下划线:userNameLogin而不是Username_Login. toString()调用字符串是没有意义的。

于 2013-02-09T11:13:15.430 回答