pop-up-Fenster

Status
Nicht offen für weitere Antworten.

bronkowitz

Aktives Mitglied
ich möchte in meinem Programm ein Fenster aufnehmen, das aufgeht, wenn ein bestimmter Menüpunkt aufgerufen wird (oder auch ein Button gedrückt wird - egal) und dieses Fenster soll dann "alle möglichen" weiteren Komponenten enthalten können (Reiter, ComboBoxen, etc...). Beispiel: Firefox..Extras..Einstellungen.... Eigentlich hat fast jedes Programm so etwa, aber ich komme nicht darauf, womit man so etwas realisiert. Muss das ein Panel sein? Aber diese Fenster liegen ja immer frei verschieblich über dem Frame, wie ein pop-up-Menü, das aber wiederum nur Menüe-Items hat.
Wer kann mir helfen?
 
ganz allgemein ein neues JFrame,
etwas komfortabler genau dafür ausgelegt: ein JDialog,
für kleine Ja/ Nein/ Abbrechen-Abfragen ein JOptionPane,

such danach mal in Lehrbüchern/ Google
 
Danke, habs auch einigermassen hingekriegt.
Trotzdem noch zwei Fragen hierzu:

1. In der den Beispielen die ich hierzu gefunden habe werden die Dialogfelder anschließend immer mit setVisible(false) wieder unsichtbar gemacht. Das heißt doch, dass sie als Objekt noch existieren und wenn man sie wieder braucht muss man sie nur wieder "visible" machen? Aber was, wenn man dieses Verhalten nicht will (das Dialogfeld soll programmabhängig immer mit unterschiedlichen Einstellungen starten) Wie kann man das Dialogfeld nach Abschluß "sterben" lassen? Sonst würden ja immer mehr Objekte entstehen??
2. Gibt es eine Funktion mit der man das Dialogfeld mittig - oder sonstwie - im Frame anordnen kann?
 
1. dispose();
2. setLocationRelativeTo(frame) --> mittig zum frame
setLoctationRelativeTo(null) --> mittig auf Bildschirm
 
zu 1.
Dazu rufst du die dispose()-Methode auf. Damit werden vom Fenster belegte native Resourcen wieder freigegeben. Den Rest besorgt der GC.

zu 2.
Du übergibst dem zu positionierenden Fenster eine Referenz auf seinen Aufrufer. Diese Referenz verwendest du dann im Konstruktor deiner Dialog-Klasse:
Code:
setLocationRelativeTo(aufrufer);
Dazu gibts ziemlich viele Codebeispiele im Forum.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben