Internes Dialog im Programm

Status
Nicht offen für weitere Antworten.

H3llGhost

Bekanntes Mitglied
Hallo Leute,

ich habe mal eine Frage:
Ich habe ein Programm und möchte ein kleines Dialogfenster innerhalb des Programmes haben ohne das dieses unten in der Taskleiste angezeigt wird.
Also wie das Öffnen-Dialog in Word oder Einstellungsdialog in anderen Programmen.
Aber ich habe keien Ahnung wie ich sowas realisiere.
Habt ihr eine Idee?

Danke im Vorraus!
 
jep. Vorgefertigte JDialogs gibts unter JOptionPane. Wenn du eine File Abfrage machen willst, ist der JFileChooser toll
 
Danke für den Tipp.
Ich suche ja im Moment nicht Abfragen oder so sondern ich möchte ein dynamisches Suchfenster realisieren. 😉
Das JOptionPane werde ich später auch gebrauchen können ... 🙂
 
Eine Frage habe ich nochmal.

Also ich erstelle einen JDialog und dadrin gibt es unter anderem einen Beenden-Button, dadurch wird der ActionListener aufgerufen.
Was soll dieser aber mit dem JDialog machen, dass es so "aussieht", dass ich es geschlossen habe?
 
Danke erstmal für deine schnelle Antwort.

Das dispose() löscht doch alles verbundene oder was macht das genau?
Weil ich möchte ja in der aufrufenden Klasse auf die Werte die eingegeben worden sind zugreifen.

Desweiteren kann man die setDefaultCloseOperation mit einem Funktionsaufruf verbinden?
 
dispose() ""löscht"" nicht deine Variablen, die du selber in der Klasse extends JDialog definiert hast, das ist schon mal sicher. Was es aber genau macht, müsstest du mithilfe google nachlesen.

Desweiteren kann man die setDefaultCloseOperation mit einem Funktionsaufruf verbinden?
Code:
this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); // verhindert, das sich das Fenster selber beendet.

this.addWindowListener(new WindowListener(){
	public void windowClosing(WindowEvent e){
		// wird aufgerufen wenn man oben rechts aufs X klickt.
	}
	public void windowClosed(WindowEvent e){}
	public void windowActivated(WindowEvent e){}
	public void windowDeactivated(WindowEvent e){}
	public void windowDeiconified(WindowEvent e){}
	public void windowIconified(WindowEvent e){}
	public void windowOpened(WindowEvent e){}
});
 
In vielen Codeschnipsel wird WindowConstants genutzt, aber man findet vereinzelt auch was mit JDialog.
Ich selber kann aber nicht sagen ob es da einen Unterschied gibt.
Ich weiß nur, dass beides läuft.
 
H3llGhost hat gesagt.:
In vielen Codeschnipsel wird WindowConstants genutzt, aber man findet vereinzelt auch was mit JDialog.
Ich selber kann aber nicht sagen ob es da einen Unterschied gibt.
Ich weiß nur, dass beides läuft.
Definiert sind die XXX_ON_CLOSE-Konstanten im WindowConstants-Interface. JDialog, JFrame und JInternalFrame implementieren dieses Interface. Damit sind die Konstanten natürlich auch über diese Klassen erreichbar. Wenn man Konstanten aus Interfaces benutzt sollte man trotzdem den Ort ihrer Herkunft richtig auszeichnen. Daher besser WindowConstants.DISPOSE_ON_CLOSE statt JDialog.DISPOSE_ON_CLOSE.

Ebenius
 
Ebenius hat gesagt.:
H3llGhost hat gesagt.:
In vielen Codeschnipsel wird WindowConstants genutzt, aber man findet vereinzelt auch was mit JDialog.
Ich selber kann aber nicht sagen ob es da einen Unterschied gibt.
Ich weiß nur, dass beides läuft.
Definiert sind die XXX_ON_CLOSE-Konstanten im WindowConstants-Interface. JDialog, JFrame und JInternalFrame implementieren dieses Interface. Damit sind die Konstanten natürlich auch über diese Klassen erreichbar. Wenn man Konstanten aus Interfaces benutzt sollte man trotzdem den Ort ihrer Herkunft richtig auszeichnen. Daher besser WindowConstants.DISPOSE_ON_CLOSE statt JDialog.DISPOSE_ON_CLOSE.

Ebenius

Persönlich finde ich die Version JDialog.DISPOSE_ON_CLOSE besser. Da mit dem Aufruf klar ist das JDialog das interface WindowConstants implementiert. Was für einen Vorteil hat es den WindowConstants.DISPOSE_ON_CLOSE zu schreiben?
 
Zed hat gesagt.:
Persönlich finde ich die Version JDialog.DISPOSE_ON_CLOSE besser. Da mit dem Aufruf klar ist das JDialog das interface WindowConstants implementiert. Was für einen Vorteil hat es den WindowConstants.DISPOSE_ON_CLOSE zu schreiben?
Es hat in diesem Fall praktisch gar keinen Vorteil. Prinzipiell sollte man sich angewöhnen statische Variablen und Methoden direkt zu referenzieren. Das heißt, immer über die Klasse / das Interface in der sie definiert sind; nicht über Ableitungen / Implementierungen, auch nicht über Instanzen.

Wie wäre es denn statt dessen mit Static Imports?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben