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

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ę?

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.

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:

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.

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.

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