Zmiana panelu w oknie/aplecie

0

Witam,
Tak jak w temacie chciałbym zmienić całkowicie zawartość wyświetlaną w aplecie. To znaczy, na początku w danym aplecie wyświetlam jakiś panel, a następnie chcę ( w wyniku jakiegoś zdarzenia ) zmienić zawartość apletu zmieniając ją na inny panel. Oto kod jak ja chciałem to zrobić:

public class Aplet extends JApplet
{
public void init()
{
powZawartosci= getContentPane();
JPanel panel=new Panel(); // Panel pierwszy. Wyświetlany początkowo
powZawartosci.add(panel);
}

    public static void zmien()              // Metoda wywoływana w wyniku zdarzenia w pierwszym panelu
    {
    	powZawartosci.remove(panel);     
    	JPanel panel2=new Panel2();         // Panel drugi
    	powZawartosci.add(panel2);
    }
    
    static Container powZawartosci;
    static JPanel panel;
}

Proszę o pomoc. [???]
Z góry dzięki

0

Chyba raczej tak:

public class Aplet extends JApplet
        {
            public void init()
            {
                    panel=new Panel();             // Panel pierwszy. Wyświetlany początkowo
                    panel2=new Panel2();         // Panel drugi
                    add(panel);
            }
           
            public static void zmien()              // Metoda wywoływana w wyniku zdarzenia w pierwszym panelu
            {
                    remove(panel);    
                    add(panel2);
                    validate();
            }
            JPanel panel;
            JPanel panel2;
        }
0

Niestety, nie działa tak jak w przykładzie wyżej. Rzuca jakieś wyjątki, a obydwa panel działają poprawnie niezależnie od siebie.

Próbowałem też tak jak poniżej, ale również nie działa:

            public void init()
	    {
	    	powZawartosci= getContentPane();
	    	panel=new Panel();
	    	panel2=new Panel2();
	    	panel.setVisible(true);
	    	panel2.setVisible(false);
	    	powZawartosci.add(panel);
	    	powZawartosci.add(panel2);
	    	powZawartosci.repaint();
	    }
	    
	    public static void zmien()
	    {
	    	panel2.setVisible(true);
	    	panel.setVisible(false);
	    	powZawartosci.repaint();
	    }

Ma ktoś pomysł, ale zetknął się z czym takim ?? Może w ogóle w inny sposób do tego podejść. Proszę o radę.

0

Ja się zetknąłem, napisałem kilka programów ze zmianą paneli. Zdanie

Rzuca jakieś wyjątki
zawiera zero informacji. Napisz jakie wyjątki, a najlepiej to pokaż kod rzucający wyjątki..

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