Implementacja podobnych zachowań okienek dialogowych

0

Witam

Mam taki dylemat. W swoim programie mam kilka okienek dialogowych i chciałbym żeby każde z nich reagowało na naciśnięcie klawisza enter i esc. Żeby nie powtarzać kodu w każdej klasie okienka dialogowego
odpowiedzialnego za obsługę klawiszy, pomyślałem że może zastosuje coś ze wzorca strategia. (chyba :-) ) Czyli klasa implementacje KeyListener wyciągnę do osobnej klasy, tylko teraz po naciśnięciu enter w każdym okienku kryję się inna metoda do wykonania, więc czy mogę przykazywać przy tworzeniu obiektu tej klasy (tej z interfejsem KeyListener) całą metodę do jej konstuktora, raczej to nie jest możliwe bo i bezsensu, można zrobić coś takiego w prostszy sposób? No chyba że bym w każdej z tych klas zrobił tą metodę statyczną i może wtedy coś pokombinował z przekazaniem jej do obiektu z interfejsem, ale sam już nie wiem jak. Albo po prostu przekazać do konstruktora JButton z okna i w metodzie dać button.doClick(), Doradzi coś ktoś?

Pozdrawiam

0

Ja bym to zrobił tak:

public abstract class MyListener extends KeyAdapter{
   
   public abstract void onEnter();

   public void onEsc(){
      //obsługa esc
   }

   /// metody rozpoznające przycisk i  wywołują w zależności onEnter lub onEsc
}

public class MyFirstDialog extends MyListener{

   public void onEnter(){
      //obsługa entera dla okna 1
   }
}


public class MySecondDialog extends MyListener{

   public void onEnter(){
      //obsługa entera dla okna 2
   }
}

Maksymalnie dużo kodu wykopaliśmy do klasy abstrakcyjnej, która rozpoznaje i deleguje obsługę klawiszy do konkretnych metod.

0

Dzięki za pomoc, też w sumie myślałem nad czymś podobnym tylko że nie chciało by mi się zmieniać klas dialogów bo każda dziedziczy po JDialog, więc wiesz, pokombinuje coś innego jak się nie uda zastosuje Twoje rozwiązanie bo jest chyba najbardziej optymalne.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1