Dobrý den. Pracuji na jednom programu, kde se začíná v menu a po kliknutí na button a chci, aby se mi vykreslily určité objekty, které už jsem si vytvořil v jiné třídě. Problém je, že místo vykreslení mi to jen tak probliklo a nic tam vykreslené nezůstalo. zde kód
CardLayout card = (CardLayout)(jPanel3.getLayout());
card.next(jPanel3);
polehodnot.cleanValue();
mrizka.paintComponent(jPanel2.getGraphics());
Toto je vnitřek metody která se vykoná po kliknutí na button. Přepne se do dalšího panelu v Layoutu, kde se má vykreslit mrizka. To je v pořádku. To se přepne, ale to, co se má vykreslit pod mrizkou se nevykreslí, maximálně jen problikne.
Avšak podařilo se mi to "obejít" jednoduše tak, že před řádkem jsem měl umístěný JOptionPane. Pak kód vypadá takto
CardLayout card = (CardLayout)(jPanel3.getLayout());
card.next(jPanel3);
polehodnot.cleanValue();
JOptionPane.showMessageDialog(newGame1, "Zvolil/a jste si hru pro jednoho hráče", "Nová hra", JOptionPane.INFORMATION_MESSAGE);
mrizka.paintComponent(jPanel2.getGraphics());
A toto mi správně funguje! Všechno se správně vykreslí, když kód vypadá takto.
Problém je, že nechápu proč tomu tak je a také to, že bych se toho JOptionPane potřeboval zbavit, ale potřebuji zachovat funkčnost.
Budu vděčný, kdyby mi to někdo dokázal objasnit a pomoci :)