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ę?
- Rejestracja:około 14 lat
- Ostatnio:ponad 13 lat
- Postów:42
- Rejestracja:około 14 lat
- Ostatnio:ponad 13 lat
- Postów:42
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.



- Rejestracja:około 14 lat
- Ostatnio:ponad 11 lat
- Postów:37
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.
- Rejestracja:około 14 lat
- Ostatnio:ponad 13 lat
- Postów:42
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.