Wie Dialog erstellen?

Status
Nicht offen für weitere Antworten.

mobile

Bekanntes Mitglied
Bin hier grad am probieren und teste, aber ich komme einfach nicht weiter. Mal kurze Beschreibung.

In meiner Klasse Test, wird ne Menge geteste, alo können uch Fehler auftreten. Jedesmal wenn jetzt ein Fehler auftritt, möchte ich einen modalen Dialog öffnen. Wie ich den öffne und ihm Daten übergebe ist kein Problem. aber ich bekomme einfach keine Klasse OkDialog gebacken. Der Dialog soll nur einen kurzen Text enthalten und einen Ok Button, wichtig ist mir, dass mein MainWindow inaktiv ist und es erst weiter geht wenn der Dialog geschlossen ist. Also wie er den Text, und andere Daten übergeben bekomm ist klar, aber wie ich die Klasse Dialog aufbaue nicht.

Deshalb meine Frage. Kann mir jemand mal kurz das Grundgerüst eines modalen Dialogs posten? Wäre echt super!

Danke!
 

AlArenal

Top Contributor
Code:
... class OkDialog extends JDialog {
...

public OkDialog(JFrame frame) {
  super(frame, true);
}

...
}

Wo war da nun die Schwierigkeit?
 

dieta

Top Contributor
Einen modalen Dialog konstruierst du wie ein normales JFrame, nur dass du ihm noch z.B. per super(owner, title, modal) dern Owner übergibst und modal auf true setzt.

Für deine Zwecke hat sun aber schon mit der Klasse JOptionPane vorgesorgt. Die einthält bereits einige Standard-Methoden für einige Standard-Dialoge mit vielen Konfigurationsmöglichkeiten:
Java-API: JOptionPane
 

mobile

Bekanntes Mitglied
weiß auch nicht hab irgendwie grad ne Denkblockade. also das sieht jetzt so aus.

Code:
public class OkDialog extends JDialog {
	/**Ereignis Bahandlung für Button*/
	class OkEvent extends WindowAdapter implements ActionListener {
		public void actionPerformed(ActionEvent e) {
	    	//Hier muss sichd er Dialog wieder schließen??!!
		}
	}
	
	public OkDialog(JFrame MainWindow,  boolean modal) {
		super(MainWindow,  true);
		
		setLayout(new FlowLayout());
		JButton ok = new JButton("OK");
		getContentPane().add(ok);
		ok.addActionListener(new OkEvent());	
	}

}

So jetzt soll in der Titelleiste noch "Error" stehen und den Text der in dem Dialog erscheinen soll, also die eigentliche Fehlermeldung will ich von der anderen Klasse als string übergeben. Mehr will ich eigentlich gar nicht!
 

dieta

Top Contributor
Den Dialog musst du erst mal per setVisible(true) sichtbar machen. Schließen, und damit das Hauptfenster entsperren kannst du ihn einfach per setVisible(false). So ist der Dialog beliebig oft wiederverwendbar.
Den Titel kannst du wie beim JFrame per setTitle setzten oder schon mit super(MainWindow, "Error", true) festlegen.
 

mobile

Bekanntes Mitglied
ok also öffnen tut er sich und schließen über x geht auch, aber er zeigt den BUtton noch nicht an
 

dieta

Top Contributor
Den Button musst du damit er angezeigt wird wie beim JFrame noch erst adden:
Code:
//...
add(ok);
//...
 

mobile

Bekanntes Mitglied
also jetzt geht hier gar nichts mehr. Moment mal, mal ganz langsam.

Hier eine Methode der Klasse Test aus der der Dialog aufgerufen werden soll.

Code:
/**confert() speichert den String als Integer Werte ab zur weiteren Bearbeitung
	 * am Ende wird berechnung() aufgerufen*/
	private final boolean confert() {
		try {
			t = Integer.parseInt(this.tag);
			m = Integer.parseInt(this.mon);
			j = Integer.parseInt(this.jahr);
		}
		catch(NumberFormatException e) {
			System.out.println("***Fehler! Eingabe nicht korrekt!***");
			tmp = false;
		}
		return tmp;
	}

MainWindow ist aber die Klasse mit der das Hauptfenster geöffnet wird.
Der Dialog sieht so aus.

Code:
public class OkDialog extends JDialog {
	/**Ereignis Bahandlung für Button*/
	class OkEvent extends WindowAdapter implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			setVisible(false);
		}
	}
	
	public OkDialog(JFrame MainWindow,  boolean modal) {
		super(MainWindow, true);
		
		setVisible(true);
		setBounds(400,320,210,253);
		
		setLayout(new FlowLayout());
		JButton ok = new JButton("OK");
		add(ok);
		ok.addActionListener(new OkEvent());	
	}

}

Aber er wird nur ganz klein links oben angezeit und der Button ist nicht da. Und außerdem rufe ich ihn von MainWindow auf, da es aus Test nicht geklappt hat.
 

mobile

Bekanntes Mitglied
ok also jetzt sieht er so aus:

Code:
public class OkDialog extends JDialog {
	/**Ereignis Bahandlung für Button*/
	class OkEvent extends WindowAdapter implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			setVisible(false);
		}
	}
	
	public OkDialog(JFrame MainWindow,  String msg, boolean modal) {
		super(MainWindow, "Error", true);
		Point par = MainWindow.getLocation();
		setLocation(par.x + 30, par.y +30);
		
		setLayout(new FlowLayout());
		JButton ok = new JButton("OK");
	
		add(ok);
		ok.addActionListener(new OkEvent());	
		setVisible(true);
	}
}

Aber er ist immer noch so klein, muss die Größe erst ziehen, bis man den Button sieht. Wie kann ich ihn nun jetzt aber aus Test aufrufen?
 

mobile

Bekanntes Mitglied
also ich habe jetzt alles so weit richtig. Fehlt nur noch der richtige Aufruf:

Das hier ist ein Teil der Klasse Test in der geprüft wird und aus dem ich unteranderem den Dialog öffnen möchte.

Code:
/**confert() speichert den String als Integer Werte ab zur weiteren Bearbeitung
	 * am Ende wird berechnung() aufgerufen*/
	private final boolean confert() {
		try {
			t = Integer.parseInt(this.tag);
			m = Integer.parseInt(this.mon);
			j = Integer.parseInt(this.jahr);
		}
		catch(NumberFormatException e) {
//Hier soll der Dialog geöffnet werden mit dem String er, der den Fehler enthält
			err ="***Fehler! Eingabe nicht korrekt!***";
			kDialog ok = new OkDialog(//..., err , true);
			tmp = false;
		}
		return tmp;
	}

Wie muss der Aufruf aussehen? Und wie muss das dann im Dialog aussehn mit Frame owner?
 

dieta

Top Contributor
Code:
OkDialog ok = new OkDialog(this, err , true);
Mit this kannst du aus einer Klasse auf die aktuelle Instanz zugreifen.
 
G

Guest

Gast
hab das jett so probiert, aber er das der Konstruktor von OkDialog nicht existiert.

also der Aufruf sieht jetzt so aus, aus der Klasse Test.

Code:
//...
catch(NumberFormatException e) {
			err ="***Fehler! Eingabe nicht korrekt!***";
			OkDialog ok = new OkDialog(this, err , true);
			tmp = false;
		}
//....

und der Konstruktor in OkDialog sieht so aus:

Code:
//...
public OkDialog(JFrame MainWindow,  String msg, boolean modal) {
		super(MainWindow, "Error!", true);

//....

Ist doch aber richtig oder habe ich noch was übersehen?
 

dieta

Top Contributor
Poste mal die genaue Fehlermeldung. Verweist er auf wirklich auf diese Zeile?
Kann es vllt. sein, dass die Klasse in der das
Code:
OkDialog ok = new OkDialog(this, err , true);
wo er den Fehler wirft, gar kein JFrame ist?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
melaniemueller Confirmation Dialog erstellen AWT, Swing, JavaFX & SWT 18
N Swing eigenen Dialog erstellen AWT, Swing, JavaFX & SWT 8
B Dialog aus DB Struktur erstellen AWT, Swing, JavaFX & SWT 4
H Fileinhalt löschen und SWT Dialog erstellen AWT, Swing, JavaFX & SWT 3
M Dialog erstellen und Eingaben lesen? AWT, Swing, JavaFX & SWT 20
MiHimbert Rückmeldung an den aufrufenden JAVAFX-Dialog AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
N JavaFX Vor beenden der Anwendung durch klicken von X Dialog zeigen AWT, Swing, JavaFX & SWT 1
C Swing Aufruf der Funktion (die ein Dialog anzeigt) über Symbol anzeigen lassen AWT, Swing, JavaFX & SWT 4
H Eigener Dialog mit Rückgabe -> Warten auf Button AWT, Swing, JavaFX & SWT 3
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
ralfb1105 JavaFX Alert Confirmation Dialog aus einem Service Thread AWT, Swing, JavaFX & SWT 8
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
C FileChooser Save-Dialog zeigt Files nicht an AWT, Swing, JavaFX & SWT 3
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
E Swing Dialog modal aufrufen AWT, Swing, JavaFX & SWT 2
T JavaFX Dialog schließt ohne dass es schließen soll AWT, Swing, JavaFX & SWT 1
RalleYTN Modaler Dialog und JTree Node mit sehr... seeeeehr vielen Elementen AWT, Swing, JavaFX & SWT 6
T JOptionPane Dialog plus Rechnung ausgeben AWT, Swing, JavaFX & SWT 1
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
J JavaFX Dialog - Style AWT, Swing, JavaFX & SWT 6
D Swing Dynamisches Dialog UI AWT, Swing, JavaFX & SWT 8
H JFileChooser Dateinamen vorgeben (Save Dialog) AWT, Swing, JavaFX & SWT 9
D Neues Dialog Mittig auf dem Bildschirm AWT, Swing, JavaFX & SWT 4
F 2D-Grafik Grafikproblem nach Aufruf von JColorChooser-Dialog AWT, Swing, JavaFX & SWT 6
M Java FX Innerhalb einem FXML-Dialog weiteren FXML-Dialog einblenden AWT, Swing, JavaFX & SWT 3
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
G Datei öffnen Dialog modifizieren AWT, Swing, JavaFX & SWT 13
W SWT Dialog richtig schließen? AWT, Swing, JavaFX & SWT 0
M Benutzer-Dialog ohne System.in/out AWT, Swing, JavaFX & SWT 2
P JOptionPane input und show Message Dialog AWT, Swing, JavaFX & SWT 5
F Dialog mit Titel, Text und Ok Button AWT, Swing, JavaFX & SWT 2
TheWhiteShadow SWT Dialog Titel setzen AWT, Swing, JavaFX & SWT 6
VfL_Freak Darstellungsproblem mit Dialog AWT, Swing, JavaFX & SWT 8
P Swing Dialog zeigt keinen Inhalt in Verbindung mit JFrame AWT, Swing, JavaFX & SWT 18
G Nebenläufiger Prozess mit Dialog AWT, Swing, JavaFX & SWT 2
C Swing Fortschrittsanzeige im Dialog ohne Fortschrittsbalken und Abbruchoption AWT, Swing, JavaFX & SWT 7
M Swing Elemente im Dialog neu "laden". AWT, Swing, JavaFX & SWT 6
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
R DnD in modalem Dialog AWT, Swing, JavaFX & SWT 4
I Dialog zum Speichern? AWT, Swing, JavaFX & SWT 16
M Dialog soll etwas an "Oberklasse" übergeben AWT, Swing, JavaFX & SWT 3
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
M Datei Speichern unter Dialog - SWT AWT, Swing, JavaFX & SWT 3
hdi Swing Bzgl JFrame & modaler Dialog AWT, Swing, JavaFX & SWT 6
N Modaler Dialog wird nicht angezeigt AWT, Swing, JavaFX & SWT 8
J SWT Dialog in Dialog automatisch öffnen AWT, Swing, JavaFX & SWT 19
H Confirm Dialog erweitern AWT, Swing, JavaFX & SWT 5
K Modaler Dialog aber trotzdem Aktualisierung des MainFrames AWT, Swing, JavaFX & SWT 6
B Gestaltung eines Optionen-Dialog AWT, Swing, JavaFX & SWT 16
P Swing Option zeitbeschränkt in modalem Dialog anbieten AWT, Swing, JavaFX & SWT 2
X Einem JFrame einen Dialog als Parent setzen. Möglich? AWT, Swing, JavaFX & SWT 4
L AWT Window, Dialog und verschiedene Betriebssysteme AWT, Swing, JavaFX & SWT 2
T SWT Window Builder Pro File Dialog anzeigen AWT, Swing, JavaFX & SWT 10
A Swing Delay (1-4 Sek.) bei JTable und Dialog beim ersten Ausführen AWT, Swing, JavaFX & SWT 3
P Swing modaler dialog AWT, Swing, JavaFX & SWT 3
P SWT Dialog AWT, Swing, JavaFX & SWT 3
O Login Dialog zweimal öffnen AWT, Swing, JavaFX & SWT 2
B Datei öffnen Dialog AWT, Swing, JavaFX & SWT 9
C Swing Fehlermeldung in einem Dialog anzeigen AWT, Swing, JavaFX & SWT 2
L Dialog mit Dauerschleifen AWT, Swing, JavaFX & SWT 4
K SWT TableViewer refresh() im Dialog AWT, Swing, JavaFX & SWT 2
Semox Swing FileSaveAs Dialog Problem AWT, Swing, JavaFX & SWT 14
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
D URL Dialog AWT, Swing, JavaFX & SWT 2
B Swing Keylistener fuer Dialog-Buttons AWT, Swing, JavaFX & SWT 2
J nicht weckklickbarer dialog AWT, Swing, JavaFX & SWT 15
S Frame - Panel - Dialog rückgabe wert AWT, Swing, JavaFX & SWT 5
D Swing Dialog schließen verhindern bei Fehleingabe AWT, Swing, JavaFX & SWT 2
F JColorChooser NICHT im Dialog AWT, Swing, JavaFX & SWT 12
C Swing Mit jTree ein Ordneröffnen Dialog machen? Und Ordner Inhalt auslesen? AWT, Swing, JavaFX & SWT 4
N SWT Dialog mit swt-widgets AWT, Swing, JavaFX & SWT 5
L AWT Daten vom Dialog an Frame senden AWT, Swing, JavaFX & SWT 3
Lurch Swing Dialog erbt von Dialog? AWT, Swing, JavaFX & SWT 28
eQuest Durchsuchen Dialog AWT, Swing, JavaFX & SWT 6
D ausgewählte Textstellen scheinen durch Dialog durch AWT, Swing, JavaFX & SWT 7
S Modalen Dialog nachbauen..? AWT, Swing, JavaFX & SWT 4
E Swing Rückgabe eines Wertes aus einem Dialog zu einem Dialog AWT, Swing, JavaFX & SWT 4
W Swing Problem beim Passwort Dialog AWT, Swing, JavaFX & SWT 4
T Dialog ohne Frame, direktes paint in graphics AWT, Swing, JavaFX & SWT 5
C requestFocus bei modalem Dialog AWT, Swing, JavaFX & SWT 3
5 Mod.Dialog reagiert n.auf ActionListener seiner Komponenten AWT, Swing, JavaFX & SWT 4
A Bitte warten Dialog AWT, Swing, JavaFX & SWT 4
G SWT Dialog AWT, Swing, JavaFX & SWT 7
GilbertGrape EXIT_ON_CLOSE in Dialog AWT, Swing, JavaFX & SWT 3
T JFileChooser: beim Save Dialog einen Dateinamen vorgeben? AWT, Swing, JavaFX & SWT 6
K Druck-Dialog AWT, Swing, JavaFX & SWT 4
D JTable nach Öffnen-Dialog umbaun AWT, Swing, JavaFX & SWT 5
K Dialog schliesst sich nicht. Warum? AWT, Swing, JavaFX & SWT 11
K Automatisch einen Dialog schliessen AWT, Swing, JavaFX & SWT 15
J dialog AWT, Swing, JavaFX & SWT 5
H nicht modaler Dialog verdeckt modalen Dialog AWT, Swing, JavaFX & SWT 5
S Probl. bei Java Programm - Dialog zum Bearbeiten von Bildern AWT, Swing, JavaFX & SWT 4
W Wie macht man so nen Settings Dialog AWT, Swing, JavaFX & SWT 2
K Datei öffnen Dialog AWT, Swing, JavaFX & SWT 5
K Dialog aus einem Dialog öffnen AWT, Swing, JavaFX & SWT 4
S preference dialog öffnen AWT, Swing, JavaFX & SWT 8
spacegaier Fehler beim Aufrufen von Dialog aus ActionListener AWT, Swing, JavaFX & SWT 12
B Confirmation Dialog AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben