Реализация общего метода onClick для нескольких кнопок

138
15 июня 2019, 21:10

Хочу реализовать общий метод обработки нажатия для группы кнопок с помощью switch. Не получается эту идею запилить. С помощью if-else-if получилось

    public void onClickTab1Buttons(ActionEvent event){ 
        if (event.getSource() == bt1) { 
            lbl.setText("bt1"); 
        } else if (event.getSource() == bt2) { 
            lbl.setText("bt2"); 
        } else if (event.getSource() == bt3) { 
            lbl.setText("bt3"); 
        } 
    }

Хочу примерно так:

public void onClickTab1Buttons(ActionEvent event){ 
 
    switch (event.getSource()){ 
        case bt1: 
            lbl.setText("bt1"); break; 
        case bt2: 
            lbl.setText("bt2"); break; 
        case bt3: 
            lbl.setText("bt3"); break; 
    } 
}

Answer 1

Нельзя использовать такие объекты в свиче. Из документации: The type of the Expression must be char, byte, short, int, Character, Byte, Short, Integer, String, or an enum type (§8.9), or a compile-time error occurs...

Answer 2

Решение нашел.

public void onClickTab1Buttons(ActionEvent event){ 
 
    Object obj = event.getSource(); 
     
    Button btn = (Button) obj; 
 
    switch (btn.getId()){ 
        case "bt1": 
            lbl.setText("bt1"); break; 
        case "bt2": 
            lbl.setText("bt2"); break; 
        case "bt3": 
            lbl.setText("bt3"); break; 
    } 
}

Так работает

READ ALSO
Не удается сохранить картинку вместе с лейблом javafx

Не удается сохранить картинку вместе с лейблом javafx

Нужно по заданию сохранить картинку вместе с надписью, никак не могу найти методы для этого, а получается сохранить только картинкуНе подскажите,...

152
IDEA запуск кода | ошибка Error: Main method not found in class com.company.Main

IDEA запуск кода | ошибка Error: Main method not found in class com.company.Main

Как запустить данный код? Должен выводить сортировку, ругается на отсутствие main(String[] args), и выдает ошибку

202
Как изменить CSS стиль Color Picker в библиотеке JFoenix?

Как изменить CSS стиль Color Picker в библиотеке JFoenix?

Делаю одну из функций программы: при клике на Color Picker выбираю цвет, выбранный цвет применяется к фону label

171