Hallo,
ich schreibe derzeit eine kleine Applikation und weiß einfach nicht, wie ich damit umgehen kann, dass ein neues Panel angezeigt wird. Also ich habe meine Hauptklasse, die heißt Escabelle und enthält die Main-Methode. Damit wird das Frame aufgebaut. Im konstruktor wird die Klasse WelcomePanel aufgerufen:
. Die Klasse WelcomePanel dient das Hauptpanel anzuzeigen.
Von dieser WelcomePanel Klasse aber, wenn der User auf einem Button (zB auf dem Button bGrammatik) klickt um das nächste Panel anzuzeigen, muss ich dann zu der Hauptklasse Escabelle zurückkehren, um eben dieses nächste Panel auf dem Frame "hängen" zu können. Also:
Zurück zur Hauptklasse Escabelle wird dann die nächste Klasse für das neue Panel erst aufgerufen:
Habe bis jetzt keine andere Lösung gefunden um den Panel auf dem Hauptframe zu haben.
Wie kann ich vermeiden diese hin und zurück und eine schöneres Code zu haben?
Danke.
ich schreibe derzeit eine kleine Applikation und weiß einfach nicht, wie ich damit umgehen kann, dass ein neues Panel angezeigt wird. Also ich habe meine Hauptklasse, die heißt Escabelle und enthält die Main-Methode. Damit wird das Frame aufgebaut. Im konstruktor wird die Klasse WelcomePanel aufgerufen:
Code:
_myPanel.add(new WelcomePanel());
Code:
public class Escabelle extends JFrame implements ActionListener {
public Escabelle()
{
//Konstruktor des Superklasse
_myPanel = new JPanel();
_myPanel.add(new WelcomePanel()); //Klasse WelcomePanel aufrufen, um das erste Panel anzuzeigen
cp = getContentPane();
BorderLayout layout = new BorderLayout();
cp.setLayout(layout);
cp.add("Center",_myPanel);
InitializeMenu();
setSize(1200,900);
setVisible(true);
}//End Konstruktor
Von dieser WelcomePanel Klasse aber, wenn der User auf einem Button (zB auf dem Button bGrammatik) klickt um das nächste Panel anzuzeigen, muss ich dann zu der Hauptklasse Escabelle zurückkehren, um eben dieses nächste Panel auf dem Frame "hängen" zu können. Also:
Code:
public class WelcomePanel extends JPanel {
//Konstruktor
public WelcomePanel() {
.......
private static class WelcomePanelListener implements ActionListener {
public void actionPerformed(ActionEvent ae)
{
//Quelle des Ereignisses
Object quelle = ae.getSource();
if (quelle == bGrammatik) {
subject = "grammaire";
Escabelle.createNiveau(subject); //Zuerst zurück zur Hauptklasse Escabelle um erst die Klasse Niveau aufzurufen
}//End if bGrammatik
}//End actionPerformed
}//End class private
Code:
....
public static void createNiveau (String subj) {
subject = subj;
_myPanel.removeAll();
_myPanel.add(new Niveau(subject)); /erst jetzt wird die Klasse Niveau aufgerufen, die das nächste Panel anzeigt
_myPanel.updateUI();
}//End createNiveau
......
Habe bis jetzt keine andere Lösung gefunden um den Panel auf dem Hauptframe zu haben.
Wie kann ich vermeiden diese hin und zurück und eine schöneres Code zu haben?
Danke.