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?