Java obsługa zdarzeń tworzenie nowego obiektu

0

Witam
Mam taką sytację:
Piszę aplikację z GUI, która będzie przechowywała informacje o użytkowniku. Napisałem sobie klasie (dataFrame), która wyświetla mi ramkę z polami JTextField, w które wpisuję sobie dane osoby (imie, nazwisko, itd). Mam również przycisk, do zatwierdzenia tych danych i tym samym utworzenia nowego klienta (do tego mam utworzoną klasę User). Użytkownika tego oczywiście tworzę poprzez wywołanie konstruktora w metodzie słuchacza mojego przycisku (słuchacz to egzemplarz wewnętrznej klasy anonimowej gdzie wywołuję User user1 = new User(.....)). I to własnie chcę zmienić. Nie podoba mi się, że tworzę instancję klasy User wewnątrz klasy dataFrame, która powinna tylko moim zdaniem być odpowiedzialna za wyświetlanie odpowiednich elementów.
Myślałem nad utworzeniem statycznej metody w klasie User, którą wywoła słuchacz przycisku, i która przyjmie jako parametry dane odczytane z pól formularza i wtedy utworzę sobie egzemplarz klasy User.
Czy jest lepsze rozwiązanie tego problemu??
Za wszelkie rady będę wdzięczny

0

Chyba mylisz się w tym, że Tworzysz instancję klasy User w obiekcie DataFrame. W istocie tworzysz ją w (zapewne anonimowej pod-) klasie implementującej interfejs ActionListener. Nie ma żadnej przeszkody w tym aby wyprowadzić wszelkie listenery poza klasy zajmującej się widokiem (nawet poza pakiet jeżeli ktoś lubi być masochistą :). To tylko Twoja decyzja. Niewygoda polega tylko na tym, że najczęściej w listenerze zmienia się również stan kontrolek, więc dobrze mieć dostęp do referencji obiektu GUI oraz do specyficznych danych aplikacji.
A to bardzo wygodnie realizuje "this" w przypadku aplikacji zawartej w klasie jakiegoś pojedynczego okna.

Trzeba pamiętać, że Swing dostarcza tylko obsługę widoku jeżeli ktoś chce używać schematu model-widok-kontroler (MVC). Model oraz kontroler trzeba wymyślić i napisać sobie samemu.

0

Dziękuje za odpowiedź

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