Component zur Laufzeit hinzufügen

hesk

Erfahrenes Mitglied
Hallo!

Wie die Applikation aussieht : sieh Anhang

Das ganze ist ein BorderLayout. Die navigation ist im BorderLayout.WEST
Wenn man auf "Lagerbestand" drückt, soll in BorderLayout.CENTER ein JPanel eingefügt werden.
Bei "Kundendatenbank" ein anderes JPanel.

Ich hab es so gelöst:

Code:
@Action( name="navigation1")
    public void navigateLagerhaltung()
    {
        log.debug( "Lagerhaltung" );
        Lagerhaltung lagerhaltung = new Lagerhaltung();
        mainJFrame.add( lagerhaltung, BorderLayout.CENTER );
        mainJFrame.pack();
    }

Ich frage mich jetzt ob das so richtig ist? Es funktioniert zwar, aber wird nicht immer wenn ich einen Navigations-Button drücke ein weiteres JPanel hinzugefügt und über das alte gelegt?
Ist das sauber?

Oder sollte man eher den CENTER-Bereich zuerst leeren?
 

Anhänge

  • AppBild.JPG
    AppBild.JPG
    14,9 KB · Aufrufe: 9
S

SE

Du solltest auf jeden Fall die erzeugung neuer JPanels mit new da rausnehmen weil du sonst sehr schnell den RAM voll hast und auch nicht Tab-übergreifen arbeiten kannst.
 

hesk

Erfahrenes Mitglied
Hab es jetzt mit einem CardLayout gelöst.
Einmalige initialisierung der JPanels. Später kann dann dazwischen geswitched werden.