Swing Fragen zu non-modal JDialog

Nowster

Mitglied
Hallo,

ich versuche im Moment einen non-modal Dialog zu bauen der so oft er will aufploppen kann.
Das funktioniert auch sehr gut und mann kann auch weiter mit der GUI arbeiten ohne dem Dialog Beachtung schenken zu müssen.
Nun zu meinem Problem: ich hätte gern einen Button in diesem Dialog mit dessen Hilfe sich der Dialog schliesst und noch weitere Aktionen ausführt.
Das wollte ich mit einem einfachen JButton realisieren nur funktioniert das nur bei dem zuletzt aufgeploppten Dialog bei den anderen bewirkt der Button gar nichts. Kann mir da jemand helfen und mir einen Tipp geben wie ich den Button bei jedem Dialog zum laufen bekomme?

Code :
Java:
public JDialog dialog;

public void fehlerDialog(String kdnr, String preis)
		{
			//Feld mit der Kundennummer um sie im Actionlistener zu nutzen
			final String kdnr_ok = kdnr;
			
			//erstellen des Dialogfensters
			dialog = new JDialog(window, "Suchgrund vorhanden");
		    dialog.setBounds(200, 200, 200, 200);
		    dialog.setVisible(true);
		    
		    //Jpanel für die Ausrichtung des Inhalts des Dialogs
		    JPanel dialog_inhalt = new JPanel();
			dialog_inhalt.setLayout(new BoxLayout(dialog_inhalt,BoxLayout.Y_AXIS));
		    
			
		    JLabel kdnr_lable = new JLabel("Kundennummer:");
		    kdnr_lable.setFont(kdnr_lable.getFont().deriveFont(12f));
		    dialog_inhalt.add(kdnr_lable);
		    
		    JLabel kdnr_inhalt = new JLabel(kdnr);
		    kdnr_inhalt.setFont(kdnr_inhalt.getFont().deriveFont(12f));
		    dialog_inhalt.add(kdnr_inhalt);
		    
		    dialog_inhalt.add(Box.createRigidArea(new Dimension(20,20)));
		    
		    JLabel preis_lable = new JLabel("Preis:");
		    preis_lable.setFont(preis_lable.getFont().deriveFont(12f));
		    dialog_inhalt.add(preis_lable);
		    
		    JLabel preis_inhalt = new JLabel(preis);
		    preis_inhalt.setFont(preis_inhalt.getFont().deriveFont(12f));
		    dialog_inhalt.add(preis_inhalt);
		    
		    dialog_inhalt.add(Box.createRigidArea(new Dimension(20,20)));
		    
		    //Jbutton
		    JButton ok = new JButton("Ok");
			ok.setFont(ok.getFont().deriveFont(16f));
			dialog_inhalt.add(ok);
			ok.addActionListener(new ActionListener() {
				 
				public void actionPerformed(ActionEvent e)
				{
					db.lösche_kunde_preis(kdnr_ok);
					dialog.setVisible(false);
                   dialog.dispose();
				}
			});
		    
		    dialog.add(dialog_inhalt);
		    
		}

Schonmal im Vorraus Danke für alle die bisher hier hin gelesen haben 😀.

MfG
Now
 
Zuletzt bearbeitet:
Funktioniert das nur bei dem zuletzt aufgeploppten Dialog bei den anderen bewirkt der Button gar nichts
Ja, aber das ist doch genau non-modal, oder?

Du musst natürlich den Focus in einen der anderen Dialog setzen und dort tut es der Button auch.
 

Neue Themen


Zurück
Oben