我想要从登录框架传递或共享数据(值)到我项目中的所有框架,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());
但最后它不起作用......问题是什么或任何解决方案?
提前致谢
答案 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()
没有意义。