2015-09-17 3 views
0

У меня есть JFrame с именем «Login» и еще один JPanel «AddItemJpanel». Так что я хочу использовать имя пользователя для входа в AddItemJpanel. вот как я попробовал bt it dosnt передать любые значения.Как получить значения в другом классе?

public class login{ 

public String getUserName() { 
     String n=txtUserName.getText(); 
     return n; 
    } 
} 

и это мой другой код JPanel для получить имя пользователя и хочет, чтобы установить его в jLabel.and я назвал этим именем методы в costructer.

public void setNameToInvoice(){ 
      Login l = new Login(); 
      String n = l.getUserName(); 
      lblCustomerName.setText(n); 
} 

Может кто-нибудь, пожалуйста, помогите мне сделать это?

+0

Является 'txtUserName.getText()' получать вам что-нибудь в отладчике в этой точке? –

+0

Отправьте весь код, пожалуйста. –

ответ

1

Я предполагаю, что когда вы вызываете свой класс Login, он отображает окно, предлагающее пользователю ввести некоторую информацию, но когда вы его используете, Login#getUserName не возвращает то, что вы ожидаете?

Это было бы потому, что JFrame не блокирует, то есть, как только вы сделаете рамку видимой, код продолжит выполнение того, что когда-либо оставалось в вашем методе. Это характер программирования, управляемого событиями.

Вместо использования JFrame вы можете использовать модальное диалоговое окно, которое, когда оно станет видимым, заблокирует выполнение вашего кода в том месте, где оно было видимым, до тех пор, пока диалог не будет закрыт. После чего вы можете затем запросить диалоговое окно для информации, необходимой

Взгляните на How to Make Dialogs для более подробной информации

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