2013-02-09 2 views
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()); 

Но в конце концов он лань sn't work ... в чем проблема или какое-либо решение?

заранее заблаговременно

+0

Другой вариант - использовать «Singleton». Таким образом, у вас будет только один экземпляр класса, и вам тоже не нужно создавать объект. –

ответ

2

Вы можете создать класс компонента, как:

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

Он работал со мной ... большое спасибо –

+0

Добро пожаловать @AmrAhmed – Rajshri

0

Вы создаете новый объект во втором кадре. Очевидно, что этот второй объект не содержит тех же данных, что и первый.

Если вы поместите сообщение в поле и откройте другое поле, вы не найдете в нем сообщения. То же самое с объектами Java.

Когда Логин кадр создает основной кадр, он должен пройти в SharedData объект он создал для главного конструктора кадра (или метод сеттер):

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

MainFrame frame = new MainFrame(data1); 

Вы также должны научиться Java именования и придерживайтесь их. Поля должны начинаться с буквы в нижнем регистре и не должны содержать символов подчеркивания: userNameLogin вместо Username_Login. И нет смысла звонить toString() на строку.

Смежные вопросы