У меня есть около 10 кнопок, которые будут отправлены одним и тем же методом. Я хочу, чтобы метод определял источник. Таким образом, метод знает, что кнопка «Готово» вызвала эту функцию. Затем я могу добавить случай переключения оператора if, чтобы обрабатывать их соответствующим образом. Это то, что я пробовал
//Call:
btnDone.setOnAction(e -> test(e));
public void test(ActionEvent e) {
System.out.println("Action 1: " + e.getTarget());
System.out.println("Action 2: " + e.getSource());
System.out.println("Action 3: " + e.getEventType());
System.out.println("Action 4: " + e.getClass());
}
Выходной результат:
Action 1: Button@27099741[styleClass=button]'Done'
Action 2: Button@27099741[styleClass=button]'Done'
Action 3: ACTION
Action 4: class javafx.event.ActionEvent
Готов текст на кнопке. Как видите, я мог бы использовать e.getTarget()
и/или e.getSource()
, тогда мне нужно будет подстроку, чтобы появилось только «Готово». Есть ли другой способ получить строку в апострофе вместо подстроки.
ОБНОВЛЕНИЕ: я попытался передать кнопку, и она работает, но я все еще хочу знать решение, использующее ActionEvent.
//Call:
btnDone.setOnAction(e -> test(btnDone));
public void test(Button e) {
System.out.println("Action 1: " + e.getText());
}
Выход Action 1: Done