Поле s
будет иметь значение только в том случае, если вызывается метод getSubmitButton
(его, похоже, нет в вашем коде), возвращаемая кнопка добавляется в форму, а пользователь уже нажална кнопку.
Когда вы вызываете new confirmation()
, вы получаете новый объект с его собственным полем s
и s
в новомДля подтверждения значения ему также необходимо вызвать метод getSubmitButton
и вызвать прослушиватель действий.
Я не вижу смысла для confirmation
в этом случае расширять customer_order
,Обычно вы расширяете класс для специализации - например, если у вас были определенные заказы, которые обрабатывались по-разному, потому что они повторялись каждую неделю, вы можете создать новый класс repeating_customer_order
, который добавляет дополнительные поля для работы с повторением.Доступ к данным из одного класса в другом на самом деле не является причиной для расширения одного другого.
Для того, что вы хотите сделать, я бы предложил удалить наследство (избавиться от extends customer_order
), изатем, передав значение s
в конструктор:
customer_order:
s = LastNameTextField.getText();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new confirmation(s).setVisible(true);
}
});
подтверждение:
private final String s;
public confirmation(final String s) {
super();
this.s = s;
initialize();
}
В стороне ваш код будетбудет намного легче читать, если вы будете придерживаться стандартных схем именования, используемых в большинстве приложений Java:
- классы должны начинаться с заглавной буквы и должны быть CamelCased, например CustomerOrder вместо customer_order
- поля должны начинаться со строчной буквы, например lastNameTextField или submitButton
Это помогает людям сразу увидеть, что происходит - в тот момент, когда быстрый взгляд на LastNameTextField.getText()
делает его похожим на васвызов статического метода в классе с именем LastNameTextField
!