Dialoge



  • Hallo
    ich verwende den Jbuilder 4 und habe ein Problem. Ich habe zwei
    Anwendungen erstellt mit verschiedenen Oberflächen. Ich will
    jetzt per Button zwischen den einzelnen Dialogen wechseln können.
    ich habe das jetzt so realisiert:

    Anwendung1:

    Frame1 dlg = new Frame2();
    dlg.pack();
    dlg.show();
    setVisible(false);//blendet dann das Frame 1 aus

    Anwendung 2
    Frame1 dlg = new Frame1();
    dlg.pack();
    dlg.show();
    setVisible(false);//blendet dann das Frame 2 aus

    Das Problem liegt darin dass das vorherige Frame nur ausgeblendet wird.
    Der Speicher(RAM) wird hierbei sehr belastet. Was kann ich machen?
    Welche andere möglichkeiten gibt es zwischen Oberflächen zu wechseln?

    vielen Dank



  • Du kannst dich entscheiden. Willst du mehr Speicher verbrauchen (also das eine Fenster nur ausblenden) oder wilst du mehr Rechenzeit verbrauchen (Das Fenster zerstören und bei Gebrauch neu erzeugen)?
    Du könntest natürlich auch nur mit einem Fenster arbeiten, und da dann die ContentPanes austauschen, aber wer weiß wieviel das wirklich bringt. Warum stort dich das denn überhaupt? DAs sind doch sicherlich nicht mehr als ein paar kb oder?



  • Ja klar sind das nur wenige bytes. Aber mit der Zeit summiert sich dies. Wie kann ich das Fenster zerstören?
    Was sind Content Panes?



  • Wie kann ich das Fenster zerstören?

    Naja du kannst die methode dispose() aufrufen. Danach sollte es eigentlich zerstört sein, aber es kann dennoch lange dauern, bis du die paar bytes zurückbekommst. Eventuell kannst du das ja mit System.gc() geschleunigen, aber damit gibst du dem GarbageCollector ja nur einen Tip, er könnte, wenn er will, jetzt mal einen Durchlauf machen. Er muss das nicht tun.

    Aber mit der Zeit summiert sich dies

    Wieviele Fenster machst du den überhaupt auf und zu?

    Was sind Content Panes?

    Ich habe nicht bedacht, dass du mit AWT arbeitest. Bei Swing gäbe es da eine einfachere Möglichkeit.
    Du kannst das aber auch mit AWT machen:
    Nimm einfach ein einziges Fenster. Dann erstellst du 2 andere Klassen, die am besten beide von Panel abgeleitet sind und eben nun alle Objekte des beiden Fenster enthalten. Im hauptfenster fügst du dann wahlweise entweder das eine oder das andere Panel hinzu...


Anmelden zum Antworten