JDialog schließen

xxTejaxx

Mitglied
hallo,

habe folgendes Problem:
beim start meiner anwendung wird als erstes ein dialog aufgerufen, mit einer willkommennachricht.
zurzeit sieht es so aus, wenn ich auf ok druecke, wird der invisble und das hauptfenster wird initialisiert.
schliesse ich dann die anwendung bleibt die willkommensnachricht im hintergrund weiter aktiv und wird nicht mit geschlossen. hier der code dazu:

Java:
//application
public class LizenzverwaltungView extends FrameView {

    public LizenzverwaltungView(SingleFrameApplication app) {
        super(app);
        initComponents();    
        Welcome();   // hier wird das willkommensfenster aufgerufen
        ResourceMap resourceMap = getResourceMap();
.................
public void Welcome() {
        JFrame mainFrame = LizenzverwaltungApp.getApplication().getMainFrame();
        Welcome = new Welcome(mainFrame, true);
        Welcome.setLocationRelativeTo(mainFrame);
        LizenzverwaltungApp.getApplication().show(Welcome);
    }

und hier das willkommensfenster mit schließmethode
Java:
public class Welcome extends javax.swing.JDialog {
    
    
    public Welcome(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        getRootPane().setDefaultButton(ButtonAbbrechen);
    }
    
   @Action 
     public void close() {
       this.setVisible(false);
       this.dispose();
    }

      
    }

ich dachte ja mit dispose() bekomm ich das fenster kaputt, aber pustekuchen :(
 
Implementiere doch mal einen Window-Listener.

Davon abgesehen wird die JVM nicht durch das Schließen aller Fenster beendet. Du brauchst ein System.exit();
 
die close() methode hab ich aufn button des Jdialog gelegt :
Java:
ButtonAbbrechen = new javax.swing.JButton();

ButtonAbbrechen.setAction(actionMap.get("close")); 

ButtonAbbrechen.setName("ButtonAbbrechen");
 
@Shutdown.
Das ist der Willkommen-Dialog, ich glaube nicht, dass er da das Programm schon beenden möchte.

@xxTejaxx
Wo wird die close-Methode denn aufgerufen?

MFG

Sascha
 
hat sich schon, mit nem System.exit() mach ichs alles kaputt und ende gelände.

danke für eure hilfe :)

falls es ne bessere methode gibt, hier der komplette code:
Java:
package lizenzverwaltung;

import org.jdesktop.application.Action;

public class Willkommen extends javax.swing.JDialog {
    
 
    public Willkommen(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        getRootPane().setDefaultButton(ButtonAbbrechen);
    }
    
    @Action 
    public void close() {
       //this.setVisible(false);
       this.dispose();
    }
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        LabelPLZ = new javax.swing.JLabel();
        LabelStr = new javax.swing.JLabel();
        LabelFirma = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        LabelFaxPrefix = new javax.swing.JLabel();
        LabelFax = new javax.swing.JLabel();
        LabelEmailPrefix = new javax.swing.JLabel();
        LabelEmail = new javax.swing.JLabel();
        LabelTelPrefix = new javax.swing.JLabel();
        LabelTel = new javax.swing.JLabel();
        ButtonAbbrechen = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setName("Form"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(lizenzverwaltung.LizenzverwaltungApp.class).getContext().getResourceMap(Willkommen.class);
        LabelPLZ.setText(resourceMap.getString("LabelPLZ.text")); // NOI18N
        LabelPLZ.setName("LabelPLZ"); // NOI18N

        LabelStr.setText(resourceMap.getString("LabelStr.text")); // NOI18N
        LabelStr.setName("LabelStr"); // NOI18N

        LabelFirma.setText(resourceMap.getString("LabelFirma.text")); // NOI18N
        LabelFirma.setName("LabelFirma"); // NOI18N

        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        LabelFaxPrefix.setText(resourceMap.getString("LabelFaxPrefix.text")); // NOI18N
        LabelFaxPrefix.setName("LabelFaxPrefix"); // NOI18N

        LabelFax.setText(resourceMap.getString("LabelFax.text")); // NOI18N
        LabelFax.setName("LabelFax"); // NOI18N

        LabelEmailPrefix.setText(resourceMap.getString("LabelEmailPrefix.text")); // NOI18N
        LabelEmailPrefix.setName("LabelEmailPrefix"); // NOI18N

        LabelEmail.setText(resourceMap.getString("LabelEmail.text")); // NOI18N
        LabelEmail.setName("LabelEmail"); // NOI18N

        LabelTelPrefix.setText(resourceMap.getString("LabelTelPrefix.text")); // NOI18N
        LabelTelPrefix.setName("LabelTelPrefix"); // NOI18N

        LabelTel.setText(resourceMap.getString("LabelTel.text")); // NOI18N
        LabelTel.setName("LabelTel"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(lizenzverwaltung.LizenzverwaltungApp.class).getContext().getActionMap(Willkommen.class, this);
        ButtonAbbrechen.setAction(actionMap.get("close")); // NOI18N
        ButtonAbbrechen.setName("ButtonAbbrechen"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(157, 157, 157)
                .addComponent(ButtonAbbrechen)
                .addContainerGap(196, Short.MAX_VALUE))
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(13, 13, 13)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(LabelPLZ)
                        .addComponent(LabelStr)
                        .addComponent(LabelFirma)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jLabel1)
                            .addGap(200, 200, 200)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(LabelFaxPrefix)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(LabelFax))
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(LabelEmailPrefix)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(LabelEmail))
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(LabelTelPrefix)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(LabelTel)))))
                    .addContainerGap(14, Short.MAX_VALUE)))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(214, Short.MAX_VALUE)
                .addComponent(ButtonAbbrechen)
                .addContainerGap())
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(113, 113, 113)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                            .addComponent(jLabel1)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(LabelFirma)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(LabelStr)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(LabelPLZ))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(LabelTel)
                                .addComponent(LabelTelPrefix))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(LabelFaxPrefix)
                                .addComponent(LabelFax))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(LabelEmailPrefix)
                                .addComponent(LabelEmail))))
                    .addContainerGap(113, Short.MAX_VALUE)))
        );

        pack();
    }// </editor-fold>
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                Willkommen dialog = new Willkommen(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify
    private javax.swing.JButton ButtonAbbrechen;
    private javax.swing.JLabel LabelEmail;
    private javax.swing.JLabel LabelEmailPrefix;
    private javax.swing.JLabel LabelFax;
    private javax.swing.JLabel LabelFaxPrefix;
    private javax.swing.JLabel LabelFirma;
    private javax.swing.JLabel LabelPLZ;
    private javax.swing.JLabel LabelStr;
    private javax.swing.JLabel LabelTel;
    private javax.swing.JLabel LabelTelPrefix;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration
    
}
 

Neue Beiträge

Zurück