• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JavaFX i MVC

Object Storage Arubacloud
0 głosów
1,246 wizyt
pytanie zadane 19 października 2016 w Java przez K0XM4N Gaduła (3,640 p.)

Witam!

Piszę pierwszą apke z wykorzystaniem frameworka javaFX. Jest to prosta gierka "Wisielec" dla jednego i dwóch graczy. Natknąłem się na pewien problem związany z wzorcem MVC w tym frameworku. Nie wiem dokońca jak zaprojektować dobrze aplikacje. Korzystałem z paru tutorialu na yt dotyczących javaFX i dowiedziałem się, że każdy view fxml, dzięki któremu uzyskuje się GUI powinien mieć własny kontroler. Tak też zrobiłem. 

Struktura projektu wygląda następująco:

Oznaczyłem kolejności okienek widoku żeby było wiadomo o co chodzi.

Otóż problem mam taki, że nie wiem za bardzo jak zrealizować wykonywanie logiki gry w osobnej klasie kontrolera. Wcześniej tworząc kalkulator w swingu z wykorzystaniem MVC zrobiłem to w ten sposób, że w widoku były zawarte wszelkie komponenty oraz metody przyjmujące argument obiektu Listener by dodać odbiorcę zdarzenia do obiektu Button. Następnie w kontrolerze zdarzenie było obsługiwane przez implementację interfejsu ActionListener w klasach wewnętrznych.

Co chciałem zrobić? np. w klasie SingleplayerInputPageController po kliknięciu przycisku play wykonała się pewna logika programu, czyli zestaw metod w których zostanie utworzony nowy gracz, wylosowane słowo, itd
 

W javieFX listenery chyba nie działają tak jak w swingu i trochę się tu pogubiłem. Będę wdzięczny na naprowadzenie mnie na rozwiązanie. Kminiłem tez z interfejsami, ale czy tak to powinno wyglądać? :P

1 odpowiedź

0 głosów
odpowiedź 21 października 2016 przez Mateusz51 Nałogowiec (28,180 p.)

Na wstępie. Dawno nie pisałem w javaFX ale z tego co pamietam to aby móc obsługiwać eventy np klikniecie na przycisk. W fxml musisz podpiąc jakiś kontroler do widoku w twoim przypadku SingleplayerInputPageController a nastepnie do buttonu przypisac funkcje która ma się wykonać(musi sie ona znajdować w klasie kontrolera).W fxml dodac  <Button ....... onAction="#metodaDoWykonania" ....../>

Mam nadzieje że to rozwjazuje to twój problem

komentarz 21 października 2016 przez K0XM4N Gaduła (3,640 p.)
Nie nie, zupełnie nie o to mi chodziło :P. Chciałem to zrobić w taki sposób, że wszystkie controlery odpowiedzialne za zdarzenia GUI byłyby utworzone w głównym kontrolerze, który by wszystko obsługiwał. Tak właśnie robiłem w swingu.
komentarz 26 października 2016 przez Mateusz51 Nałogowiec (28,180 p.)
Nie wiem czy zrozumiałem o co Ci naprawde chodzi.

Pojescie mvc wymusza ze każdy widok ma swoj kontroler. Ale przecież nic nie stoi na przeszkodzie abys tworzył jakiś obiekt pośredni miedzy kontrolerami i modelem. Np jeśli w dwoch widokach masz przycisk tworzenia gracza. To możesz zrobić obiekt PlayerDAO który udostepni metode tworzenia gracza. I w obu kontrolerach w funkcji obsugujacej zdarzenie klikniecia wywoałsz metode PlayerDAO.addPlayer(). Czy coś w tym stylu.

Podobne pytania

0 głosów
1 odpowiedź 1,574 wizyt
pytanie zadane 2 października 2018 w Java przez allenkun Początkujący (400 p.)
0 głosów
1 odpowiedź 426 wizyt
pytanie zadane 17 listopada 2018 w Java przez Amakesh Nowicjusz (220 p.)
0 głosów
2 odpowiedzi 597 wizyt
pytanie zadane 14 października 2018 w Java przez MarcinZielony Użytkownik (710 p.)

92,568 zapytań

141,422 odpowiedzi

319,635 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...