Geöffnetes Dialogfenster schließen

DerSchlangen

Mitglied
Hallo zusammen,
ich muss zur Zeit für meine Weiterbildung Java lernen. Wir haben bisher nur kleinere Projekte in Java realisiert. Nun möchte ich das erste mal mit mehreren .class Dateien arbeiten. Ich habe den unteren Dialog aus einer anderen .class Datei aufgerufen, das klappt auch.
Mein Problem ist ich habe leider keine Ahnung wie ich das schließen realisiere. dialog.setvisible(false); funktioniert nicht.

Kann mir jemand weiterhelfen indem er mir erklären kann wie ich vorgehe wenn ich ein geöffnetes Fenster schließen will? Also nur den aufgerufenen Dialog nicht das gesamte Programm?

Anbei der Code des Dialogs, das Hauptprogramm kann bei bedarf nachgeliefert werden ist aber nichts anderes als ein Aufruf per Button etc.

Vielen Dank im vorraus!


Java:
package formulare;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import mainprog.WvS_ProjectDB;
public class Logindata_dialog extends JDialog {
 
 private static final long serialVersionUID = -8298102570486583361L;
 private final JPanel contentPanel = new JPanel();
 private JTextField text_dbHost;
 private JTextField text_dbPort;
 private JTextField text_dbDatabank;
 private JTextField text_dbUser;
 private JPasswordField pwd_dbPassword;

 public static void main(String[] args) {
  try {
   Logindata_dialog dialog = new Logindata_dialog();
   dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
   dialog.setVisible(true);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public Logindata_dialog() {
  setBounds(100, 100, 450, 300);
  getContentPane().setLayout(new BorderLayout());
  contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  getContentPane().add(contentPanel, BorderLayout.CENTER);
  contentPanel.setLayout(null);
  
  JLabel lblHost = new JLabel("Host");
  lblHost.setBounds(15, 16, 69, 20);
  contentPanel.add(lblHost);
  
  JLabel lblPort = new JLabel("Port");
  lblPort.setBounds(15, 52, 69, 20);
  contentPanel.add(lblPort);
  
  JLabel lblDatenbank = new JLabel("Datenbank");
  lblDatenbank.setBounds(15, 88, 123, 20);
  contentPanel.add(lblDatenbank);
  
  JLabel lblUser = new JLabel("User");
  lblUser.setBounds(15, 124, 69, 20);
  contentPanel.add(lblUser);
  
  JLabel lblPassword = new JLabel("Password");
  lblPassword.setBounds(15, 160, 69, 20);
  contentPanel.add(lblPassword);
  
  text_dbHost = new JTextField();
  text_dbHost.setHorizontalAlignment(SwingConstants.RIGHT);
  text_dbHost.setText("localhost");
  text_dbHost.setBounds(125, 13, 288, 26);
  contentPanel.add(text_dbHost);
  text_dbHost.setColumns(10);
  
  text_dbPort = new JTextField();
  text_dbPort.setHorizontalAlignment(SwingConstants.RIGHT);
  text_dbPort.setText("3306");
  text_dbPort.setBounds(125, 49, 288, 26);
  contentPanel.add(text_dbPort);
  text_dbPort.setColumns(10);
  
  text_dbDatabank = new JTextField();
  text_dbDatabank.setHorizontalAlignment(SwingConstants.RIGHT);
  text_dbDatabank.setText("wvs_db");
  text_dbDatabank.setBounds(125, 85, 288, 26);
  contentPanel.add(text_dbDatabank);
  text_dbDatabank.setColumns(10);
  
  text_dbUser = new JTextField();
  text_dbUser.setHorizontalAlignment(SwingConstants.RIGHT);
  text_dbUser.setText("root");
  text_dbUser.setBounds(125, 121, 288, 26);
  contentPanel.add(text_dbUser);
  text_dbUser.setColumns(10);
  
  pwd_dbPassword = new JPasswordField();
  pwd_dbPassword.setHorizontalAlignment(SwingConstants.RIGHT);
  pwd_dbPassword.setBounds(125, 157, 288, 26);
  contentPanel.add(pwd_dbPassword);
  {
   JPanel buttonPane = new JPanel();
   buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
   getContentPane().add(buttonPane, BorderLayout.SOUTH);
   {
    JButton okButton = new JButton("OK");
    okButton.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent arg0) {  
      WvS_ProjectDB.setDbIpAdress(text_dbDatabank.getText()); 
      WvS_ProjectDB.setDbPort(text_dbPort.getText()); 
      WvS_ProjectDB.setDbName(text_dbDatabank.getText()); 
      WvS_ProjectDB.setDbUser(text_dbUser.getText()); 
      char[] zeichen = pwd_dbPassword.getPassword();
      String pwd_abfrage = new String(zeichen);
      WvS_ProjectDB.setDbUserPasswd(pwd_abfrage); 
      
     }
    });
    okButton.setActionCommand("OK");
    buttonPane.add(okButton);
    getRootPane().setDefaultButton(okButton);
   }
   {
    JButton cancelButton = new JButton("Cancel");
    cancelButton.setActionCommand("Cancel");
    buttonPane.add(cancelButton);
   }
  }
 }
}
 

Gucky

Top Contributor
Versuch es mal mit dispose(), obwohl setVisible eigentlich funktionieren müsste. Zeig mal den Aufruf von setVisible(false)
 

Gucky

Top Contributor
Dann versuch mal dispose()
Wenn das auch nicht klappt, überprüf mal, ob der ActionListener überhaupt aufgerufen wird.
 

DerSchlangen

Mitglied
Hallo,
Also Eclipse unterstreicht mir das dialog nicht den Begehl selber. Dachte aber ich mache es mit Dialog weil ich es ja in Zeile 28 29 und 30 so genannt habe :-/
 

DerSchlangen

Mitglied
Das verstehe ich jetzt nicht.
Ich möchte ja per Button das fenster schließen - also bin ich davon ausgegangen im Actionlistener einen Befehl einzugeben. Was genau bewirkt die von dir genannte Codezeile an genau dieser Stelle eigentlich?

Danke schonmal :)
 

Gucky

Top Contributor
Die Codezeile von mir ist falsch, es muss Logindata_dialog.this.dispose() heißen.
Das bewirkt, dass du auf das Objekt zugreifst und nicht auf die unbekannte Instanz.
Hast du das Konzept von OOP verstanden?
 

DerSchlangen

Mitglied
Hi und Danke, jetzt klappt es.
Also OOP (Wenn du damit Objekt orientiertes programmieren meinst) ist jetzt kein Buch mit sieben Sigeln aber ich bin da auch jetzt nicht so der Profi. Mir fehlt halt öfters noch das Verständnis wann wo und wie ich Objekte anspreche besonders wenn ich mit mehreren Klassen arbeite.
 

Gucky

Top Contributor
Dann verstehe ich deine Nachfrage auch. :)
Ich rate dir dich damit weiter zu beschäftigen, weil das für das Verständnis von Java extrem wichtig ist.
Schreib einfach weiter fleißig Programme und vernachlässige Google nicht und das kommt von allein ;)
 

DerSchlangen

Mitglied
Dankeschön für die aufmunternden Worte.
Bin ja mit dem Programm noch nicht am Ende. Das soll am Ende eine grafische Oberfläche für die Abfrage von Werten aus einer MySQL Tabelle werden. Sind da denke ich auf einem guten Weg nur wie bereits erwähnt arbeite ich das erste mal so richtig mit WindowBuilder und mehrklassiger GUI - und das kann ich (hoffentlich nur noch) nicht.

Auf jedenfall werde ich hier wohl öfter posten :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
R Focus auf bereits geöffnetes Fenster setzen AWT, Swing, JavaFX & SWT 9
J vom Dialogfenster ein Feld des Hauptfenster einlesen AWT, Swing, JavaFX & SWT 2
L selbsterstelltes Dialogfenster AWT, Swing, JavaFX & SWT 6
C SWT SWT Dialogfenster blitzen bei deren Aufruf AWT, Swing, JavaFX & SWT 2
K Größe einer Scrollbar im Dialogfenster ändern AWT, Swing, JavaFX & SWT 2
M eigenes DialogFenster AWT, Swing, JavaFX & SWT 4
B Dialogfenster AWT, Swing, JavaFX & SWT 6
J Dialogfenster wird nicht aktualisiert/CardLayout AWT, Swing, JavaFX & SWT 6
W Shortcuts für Dialogfenster mit SWT AWT, Swing, JavaFX & SWT 2
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
S GUI Schließen Button auf der linken Seite AWT, Swing, JavaFX & SWT 2
emma_louisa JavaFX MenuBar Zweitfenster; bei Button "Abbrechen" nur das Zweitfenster schließen AWT, Swing, JavaFX & SWT 2
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
T JavaFX Dialog schließt ohne dass es schließen soll AWT, Swing, JavaFX & SWT 1
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T Fenster schließen AWT, Swing, JavaFX & SWT 4
R JFrame schließen AWT, Swing, JavaFX & SWT 9
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
O Neuen JFrame öffnen und alten schließen AWT, Swing, JavaFX & SWT 7
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
E JavaFX JavaFX Fenster nicht schließen AWT, Swing, JavaFX & SWT 4
thet1983 offne Fenster gemeinsam schließen AWT, Swing, JavaFX & SWT 8
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
W SWT Dialog richtig schließen? AWT, Swing, JavaFX & SWT 0
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Browser öffnen und schließen via java.awt.Desktop AWT, Swing, JavaFX & SWT 4
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
R SWT Wizard schließen AWT, Swing, JavaFX & SWT 2
M Swing Einzelne Fenster schließen AWT, Swing, JavaFX & SWT 2
L SWT Eingabefelder beim Schließen des Forms auslesen AWT, Swing, JavaFX & SWT 3
M Swing ButtonListener Fenster schließen AWT, Swing, JavaFX & SWT 15
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
M Fenster schließen - Listener AWT, Swing, JavaFX & SWT 5
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
S Fremdes Fenster schließen AWT, Swing, JavaFX & SWT 2
E Fenster schließen und ein anderes öffnen AWT, Swing, JavaFX & SWT 9
L Frame Schließen und neustarten AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
Madlip SWT DateTime Widget Schließen AWT, Swing, JavaFX & SWT 4
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
J Schließen über x soll zwei Prozesse beenden AWT, Swing, JavaFX & SWT 7
J Programm schließen AWT, Swing, JavaFX & SWT 4
H Anwendung schließen ohne System.exit AWT, Swing, JavaFX & SWT 5
0 Fenster schließen AWT, Swing, JavaFX & SWT 2
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
S JPopupMenu schließen in SystemTray AWT, Swing, JavaFX & SWT 2
D Fenster schließen AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
F Swing JFrame Methode beim Schließen aufrufen AWT, Swing, JavaFX & SWT 5
2 Zusätzliches Fenster mit OK-Button schließen AWT, Swing, JavaFX & SWT 7
B Fenster schließen AWT, Swing, JavaFX & SWT 4
N Swing Von 2 dimensionalem Array auf JTextfield schließen und färben AWT, Swing, JavaFX & SWT 6
E JWindow bewegen, minimieren, vergrößern und schließen AWT, Swing, JavaFX & SWT 5
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
I Fenster schließen - Button AWT, Swing, JavaFX & SWT 13
S Swing JPopupMenu nicht schließen AWT, Swing, JavaFX & SWT 2
G Swing Fenster schließen AWT, Swing, JavaFX & SWT 6
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
aze FlowLayout:Lücken "schließen" AWT, Swing, JavaFX & SWT 2
D Swing Dialog schließen verhindern bei Fehleingabe AWT, Swing, JavaFX & SWT 2
T Schließen eines JDialogs setzen den JFrame in den Hintergrund AWT, Swing, JavaFX & SWT 2
N JInternalFrame minimieren und schließen AWT, Swing, JavaFX & SWT 2
M JWindow schließen wenn Frame sich ändert AWT, Swing, JavaFX & SWT 2
E Fenster schließen über X AWT, Swing, JavaFX & SWT 8
DStrohma JFrame mit WindowListener schließen AWT, Swing, JavaFX & SWT 12
M Main Frame schließen und neue Klasse aufrufen? AWT, Swing, JavaFX & SWT 2
T AWT Vollbild öffnen und schließen AWT, Swing, JavaFX & SWT 3
D Swing JMenu wieder schließen lassen AWT, Swing, JavaFX & SWT 7
ModellbahnerTT Neuer JFrame schließen AWT, Swing, JavaFX & SWT 4
U Tab schließen durch Button in Panel AWT, Swing, JavaFX & SWT 7
D aktuells fenster + letztes fenster schließen AWT, Swing, JavaFX & SWT 5
S Frames schließen AWT, Swing, JavaFX & SWT 6
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
J Swing Anwendung schließen im Listener AWT, Swing, JavaFX & SWT 3
C Swing Schließen, Maximieren, Minimieren entfernen AWT, Swing, JavaFX & SWT 6
D Schließen der GUI auf knopfdruck AWT, Swing, JavaFX & SWT 7
T Views bedingt öffnen oder schließen AWT, Swing, JavaFX & SWT 6
L JFrame-Verhalten bei Klick auf Schließen-Kreuz ändern AWT, Swing, JavaFX & SWT 3
klattiator Icon und Button zum Schließen in einem Tab AWT, Swing, JavaFX & SWT 3
M JFileChooser schließen AWT, Swing, JavaFX & SWT 2
T JPopupMenu "schließen" AWT, Swing, JavaFX & SWT 7
W Problem bei awt und Swing mit Schließen des Fensters AWT, Swing, JavaFX & SWT 2
T JDiaolog schließen. AWT, Swing, JavaFX & SWT 5
P Schließen-Button bei JTabbedPane? AWT, Swing, JavaFX & SWT 2
V JFrame schließen und Programmzeile(n) ausführen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben