...
Button button = new Button("Button"); // Создаете кнопку
button.addActionListener(buttonListener); // Привязываете слушатель
...
// отдельное поле - Слушатель - объект анонимного класса,
// производного от ActionListener
ActionListener buttonListener = new ActionListener() {
@Override
// переопределяем метод, который будет вызван при нажатии кнопки,
// чтобы он делал, что нам надо
public void actionPerformed(ActionEvent e) {
// Устанавливаем текст во второй форме
jframe2.ourText.setText("Кнопка нажата");
}
}
// Слушатель:
public void actionPerformed(ActionEvent e) {
jframe2.setImportantText("Кнопка нажата"); // Вызов метода
}
...
// Вторая форма:
private Text ourText = ... // Элемент недоступен извне
....
public void setImportantText(String text) { // Метод доступа (сеттер)
// Тут можно делать что-нибудь --
// напр, проверить или изменить текст
ourText.setText(modifiedText);
// И можно сделать еще что-нибудь --
// перевести на китайский и произнести вслух
}
当然,任何类都可以访问任何类的成员。为此,必须使用关键字声明从包外部访问的方法和字段
public
。如果类在同一个包中,则可以不指定范围(所谓的“默认访问级别”、默认访问级别或其他“包访问”)而留下此类成员。在https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html阅读更多内容或俄语文献中关于接触班级成员的信息。有或多或少普遍接受的实践来实现窗口之间的交互。通常,应该响应系统事件的元素(在您的情况下是响应按下的按钮)与所谓的关联。“侦听器”(listener)是一个对象,它包含一个在单击按钮时系统调用的方法。如果您分别,此方法可以将文本设置为不同的形式。这种其他形式的元素具有足够的可访问性。像这样的东西:但是,另一种形式必须包含以下描述:
写同样的东西有更优雅的方式,但在这种形式下(在我看来),原则是最清晰可见的。
然而,在大多数情况下,最好不要将表单元素设为公共,而是将其设为特殊的公共方法来管理表单。这将使将来更容易更改表单的设计和/或其功能,而无需更改程序的其余部分。例如。所以:
您可以在此处https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html或在有关事件和侦听器的俄罗斯文献中阅读更多相关信息。