Witam, chcę stworzyć minigierkę, ale tak, żebym mógł wybierać różne mapy, postacie i takie tam. Większość klas mam już napisanych, ale teraz pozostała tylko kwestia przechodzenia z panelu do panelu. Robię to za pomocą CardLayout, ale jest problem przy wywołaniu metody paint. Tutaj daję część kodu:
class teraz extends JPanel implements KeyListener
{
public void paint (Graphics o)
{
o.setColor(Color.white);
o.fillRect(0,0,320,320);
o.setColor(Color.white);
o.fillRect(x, y, 50, 50);
o.setColor(Color.red);
o.fillOval(x+9, y+9, 30, 30);
o.setColor(Color.black);
o.fillRect(x + miejscex, y + wysokoscy, dlugosc, szerokosc);
o.setColor(Color.yellow);
o.fillRect(0, 0 , 320, 10);
o.fillRect(0, 0 , 10, 320);
o.fillRect(0, 310 , 320, 10);
o.fillRect(310, 0 , 10, 320);
o.setColor(Color.white);
o.fillRect(s, z, 50, 50);
o.setColor(Color.green);
o.fillOval(s+9, z+9, 30, 30);
o.setColor(Color.black);
o.fillRect(s+miejsces, z+wysokoscz, dlugoscs, szerokoscz);
o.setColor(Color.red);
o.fillRect(a, b , 50, 50);
o.setColor(Color.green);
o.fillRect(c, d , 50, 50);
}
public void x()
{
teraz teraz = new teraz();
setSize(300, 150);
cardPanel = new JPanel();
cl = new CardLayout();
cardPanel.setLayout(cl);
JPanel p1 = new JPanel();
p1.add(teraz); cardPanel.add(p1, "1");
getContentPane().add(cardPanel, BorderLayout.CENTER);
}
i klasa główna:
gra cl = new gra();
cl.x();
cl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cl.setVisible(true);
Zamiast dużej normalnej planszy z dwoma pionkami pojawia się malutki żółty kwadracik. Dlaczego tak się dzieje?