Więc, postaram się wyjaśnić to pytanie ...Czy istnieje skuteczniejszy sposób obsługi zdarzeń kliknięcia przycisku niż kilka instrukcji if?
Zasadniczo mam GUI, którego główne okno ma kilka przycisków (prawdopodobnie około 10). Umieszczam przyciski w tablicy, ale jeśli chodzi o obsługę zdarzeń kliknięcia dla każdego przycisku, stanie się coś innego w zależności od tego, który z nich zostanie kliknięty.
Zamiast robić coś takiego:
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Button1Text") { /* do stuff */ }
else if(e.getActionCommand().equals("Button2Text") { /* do stuff */ }
else if(e.getActionCommand().equals("Button3Text") { /* do stuff */ }
else if(e.getActionCommand().equals("Button4Text") { /* do stuff */ }
}
Czy jest bardziej efektywny sposób obsłużyć odpowiedź każdy przycisk, gdy robi kliknięciu? Chodzi o to, że po kliknięciu przycisku otworzy się nowe okno umożliwiające użytkownikowi wykonywanie różnych zadań związanych z tym przyciskiem. Myślałem o użyciu getActionCommand()
w połączeniu z metodami Class.forName()
/newInstance()
, ale nie jestem pewien, czy istnieje inny (lub łatwiejszy) sposób na zrobienie czegoś takiego.
Prawdopodobnie zamierzam sprawić, że będę tu wyglądał głupio, ale dlaczego nie przypiszesz każdemu przyciskowi jego własnego ActionListener? – Gorbles