Я не совсем понимаю что такое слушатели в Java,а точнее как их связать с кнопкой,например
listeners - можно перевести как слушатель. Это объект, который "слушает" и исполняет код в зависимости от события.
interface AListener {
public void doEvent();
}
class A {
AListener listeners[];
public void addListener(AListener listener) {
//Запоминаем listener
}
public void doSomething(){
//Делаем что-то о чем требуется оповестить всех слушателей
for( int i = 0; i < listeners.length; i++ ) {
listeners[i].doEvent(); //class A не знает кто его слушает
}
}
}
class B implements AListener {
public void doEvent(){
//Что-то случилось в классе A
}
}
//...
A a = new A();
B b = new B();
B c = new B();
a.addListener(b);
a.addListener(c);
a.doSomething(); //Оба объекта b и c выполняют doEvent
НА примере java FX
При нажатии на кнопку или каких-то других действиях с объектами, некое состояние в объектах изменяется, и вызывается соответсвующий метод, реализуцию которого мы передаём посредством объекта прослушивателя событий, также для этого могут использоваться анонимные классы.
public class FXclass extends Application implements EventHandler<ActionEvent>{ // интерфейс -- для обраб событий
Button button;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Первое FX-окно");
StackPane layot = new StackPane();
button = new Button("Кнопка");
button.setOnAction(this);
layot.getChildren().add(button);
Scene scene = new Scene(layot, 300, 300); // место действия
primaryStage.setScene(scene); // выорка места действия
primaryStage.show();
}
@Override
public void handle(ActionEvent event) {
if(event.getSource() == button){
System.out.println("etgsrdfs");
}
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей