jButton wieder aktivieren

Alles was mit Swing und AWT zu tun hat

Moderatoren: wegus, Olek77

Antworten
Movementroboter
Beiträge: 3
Registriert: 16.08.2013, 08:43

jButton wieder aktivieren

Beitrag von Movementroboter » 16.08.2013, 08:48

Hallo Leute
ich möchte gerne wenn ich auf meinen JButton Person klicke mein JFrame öffnen und den JButton Deaktivieren wenn ich nun das JFrame wieder schließe möchte ich den JButton aktivieren.

Code: Alles auswählen

private void butServerdatenerfassenActionPerformed(java.awt.event.ActionEvent evt){                                                       
        butServerdatenerfassen.setFocusPainted(false);
        Serverdateneingeben s = new Serverdateneingeben();
        s.setVisible(true);
        butServerdatenerfassen.setEnabled(false);
        }

AngusMacGyver
Beiträge: 3
Registriert: 16.08.2013, 09:06

Re: jButton wieder aktivieren

Beitrag von AngusMacGyver » 16.08.2013, 10:16

Um dies umsetzen zu können, würde ich mich mit "Window Listeners" beschäftigen:

http://docs.oracle.com/javase/7/docs/ap ... tener.html
http://docs.oracle.com/javase/tutorial/ ... tener.html

Movementroboter
Beiträge: 3
Registriert: 16.08.2013, 08:43

Re: jButton wieder aktivieren

Beitrag von Movementroboter » 16.08.2013, 10:29

Hat den irgendwer vielleicht ein Code Beispiel

Movementroboter
Beiträge: 3
Registriert: 16.08.2013, 08:43

Re: jButton wieder aktivieren

Beitrag von Movementroboter » 16.08.2013, 10:37

Würde es so auch gehen ? weiß aber nicht genau wie ich es realisieren soll mit WindowClosing

Code: Alles auswählen

 private void formWindowClosing(java.awt.event.WindowEvent evt) {                                   
        
    }

astahlhofen
Beiträge: 3
Registriert: 08.10.2013, 06:55

Re: jButton wieder aktivieren

Beitrag von astahlhofen » 22.10.2013, 20:44

Hi,

der Beitrag ist zwar schon älter, aber hier mal ein Code-Beispiel:

Code: Alles auswählen

public class ChildFrame extends javax.swing.JFrame
{
    /**
     * Creates new form ChildFrame
     */
    public ChildFrame()
    {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents()
    {

        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("Hello World!");
        getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>                        
    /**
     * @param args the command line arguments
     */
    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    // End of variables declaration                   
}

Code: Alles auswählen

public class MainFrame extends javax.swing.JFrame
{
    private ChildFrame childFrame;

    /**
     * Creates new form MainFrame
     */
    public MainFrame()
    {
        initComponents();

        childFrame = new ChildFrame();
        childFrame.addWindowListener(new WindowAdapter()
        {
            @Override
            public void windowActivated(WindowEvent e)
            {
                SwingUtilities.invokeLater(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        btnPerson.setEnabled(false);
                    }
                });
            }

            @Override
            public void windowDeactivated(WindowEvent e)
            {
                SwingUtilities.invokeLater(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        btnPerson.setEnabled(true);
                    }
                });
            }
        });
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents()
    {

        btnPerson = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        btnPerson.setText("jButton1");
        btnPerson.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                btnPersonActionPerformed(evt);
            }
        });
        getContentPane().add(btnPerson, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>                        

    private void btnPersonActionPerformed(java.awt.event.ActionEvent evt)                                          
    {                                              
        childFrame.setVisible(true);
    }                                         

    /**
     * @param args the command line arguments
     */
    public static void main(String args[])
    {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try
        {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
            {
                if ("Nimbus".equals(info.getName()))
                {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex)
        {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex)
        {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex)
        {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex)
        {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable()
        {
            @Override
            public void run()
            {
                new MainFrame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton btnPerson;
    // End of variables declaration                   
}
Das ist ein Minimal-Beispiel, was genau das machen sollte, was du möchtest. Selbst wenn du immer wieder eine neue Instanz des ChildFrames erzeugst, sollte das Ganze funktionieren.

Beste Grüße,
Andi

Antworten