Game.go()->Menu.go()->Play.go() - rysowanie w jednym JFrame.

Game.go()->Menu.go()->Play.go() - rysowanie w jednym JFrame.
M3
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 13 lat
  • Postów:42
1

Jak rysować w jednym JFrame, jeśli chcę z klasy najbardziej abstrakcyjnej Game przechodzić do klasy Menu, a z klasy Menu przejść dopiero do klasy Play, gdzie gram w grę?

M3
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 13 lat
  • Postów:42
0
Kerai napisał(a)

GTF.o();

Dobra. Rozumiem, że jesteś zajebisty w javie i to daje ci prawo bycia chamem.

Mam to robić na wątki? Czy jest prostszy sposób?

Dobra, już po problemie.

madmike
Edytuj swoje posty, nie twórz kolejnych bez potrzeby!
madmike
I ponownie: edytuj swoje posty jeśli chcesz coś dopisać lub zmienić!
snout
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
  • Postów:37
0

mógłbyś stworzyć jedną klasę np. Cglowna() extends JPanel. Ją dodać do JFrame. W Cglowna tworzysz metodą paintComponent, która będzie "komunikować się" z klasami bezpośrednio odpowiedzialnymi za wyświetlanie. Na pewno ułatwi ci to pracę o tyle, że nie będziesz musiał dotykać JFrame i bawić się w usuwanie/dodawanie panelu.
Do klasy JPanelu możesz spokojnie dodawać nowe JPanele za pomocą add. W Cglowna tworzysz metodę, np. ZmianaKrajobrazu(), która będzie odpowiedzialna co ma być wyświetlane.

np:

Kopiuj
class Cglowna() exntends JPanel
 {
//pola klasy
private static int co_wyswietlac=0; //domyślenie klasa z menuGlowne

//metoda paintComponent
public void paintComponent(Graphics g)
 {
 //ble ble ble
 if(co_wyswietlac==0)
  //wyswitlamy cos tam
 else if(co_wyswietlac==1)
  //i tak dalej
 }


//klasa odpowiedzialna za zmianę "krajobrazu"
 public void ZmianaKrajobrazu(int lol)
  {
  co_wyswietlic=lol;
  repaint()
  }
}

 

i w każdej klasie odpowiedzialnej bezpośrednio z wyświetlanie komponentów musisz po odwołanie do metody ZmianaKrajobrazu(int) z Cglowna. Będzie ona wywoływana z odpowiedzi parametrem przy wciśnięciu jakiegoś przycisku.


Naród wspaniały, tylko ludzie ch..je:(
- wódz i kochany ojczulek narodu: Józef Piłsudski
M3
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 13 lat
  • Postów:42
0

Dzięki za odpowiedź. Natomiast zrobiłem to w ten sposób, że w głównej klasie tworzę JFrame, przekazuje JFrame do menu przez konstruktor, a z menu do Play.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.