如何将数据从一帧传递到另一帧以及项目中的所有其他帧?

时间:2013-02-09 11:06:15

标签: java

我想要从登录框架传递或共享数据(值)到我项目中的所有框架,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());

但最后它不起作用......问题是什么或任何解决方案?

提前致谢

2 个答案:

答案 0 :(得分: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()));

答案 1 :(得分:0)

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

如果您将邮件放入框中,并打开另一个框,则无法在其中找到该邮件。与Java对象相同。

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

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

MainFrame frame = new MainFrame(data1);

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