Frame sluiten vanuit een ander frame

Status
Niet open voor verdere reacties.

fvdstarre

Gebruiker
Lid geworden
1 mrt 2007
Berichten
25
Zoals de titel al zegt, wil ik een frame sluiten vanuit een ander frame.

In frame 1 genaamd Maanmaken heb ik een knop gemaakt die frame 2 genaamd Handleiding opent. Daarnaast staat een knop die de handleiding hoort te sluiten.

Het lijkt mij dat als ik vanuit Maanmaken de frame Handleiding kan openen, dat ik vanuit Maanmaken, Handleiding ook weer kan sluiten.

Dit is de code voor de knop die ervoor moet zorgen dat de Handleiding gesloten wordt.

Code:
class btnHandleidingUitHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            Handleiding.setVisible(false);
        }
    }
 
Laatst bewerkt:
Ok, wat is verder je vraag?
Lukt het niet? lukt het wel?
Als het niet lukt, wat voor meldingen krijg je?
 
Ik krijg totaal geen meldingen. Het werkt juist niet.

Als ik op de knop HandleidingUit druk, dan sluit hij het frame niet.

Mijn vraag is dus: Wat mis ik nu precies?
 
Code:
package registratiesysteem;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Maanmaken extends JFrame {
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();

    //Sectie 3 - Buttons
    JButton btnTerug = new JButton("Terug");
    JButton btnHandleidingAan = new JButton("Handleiding aan");
    JButton btnHandleidingUit = new JButton("Handleiding uit");

    public Maanmaken() {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(450, 275));
        setTitle("Registratiesysteem JFKS - Melding aanmaken");
    }

    class btnTerugHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            setVisible(false);
        }
    }

    class btnHandleidingAanHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            HandleidingMaanmaken HandleidingMaanmaken = new HandleidingMaanmaken();
            HandleidingMaanmaken.setBounds(0, 0, 350, 600);
            HandleidingMaanmaken.setVisible(true);

            btnHandleidingAan.setVisible(false);
            btnHandleidingUit.setVisible(true);
        }
    }

    class btnHandleidingUitHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            HandleidingMaanmaken.setVisible(false);

            btnHandleidingUit.setVisible(false);
            btnHandleidingAan.setVisible(true);
        }
    }
}
 
Wat je nodig bent:
een globale variabele:
Code:
HandleidingMaanmaken HandleidingForm;

Vervolgens in de contructor het volgende toevoegen:
Code:
        btnHandleidingAan.addActionListener(new btnHandleidingAanHandler());
        btnHandleidingUit.addActionListener(new btnHandleidingUitHandler());

Dan de class voor handleidingAanHandler zo:

Code:
class btnHandleidingAanHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            HandleidingForm = new HandleidingMaanmaken();
            HandleidingForm.setBounds(0, 0, 350, 600);
            HandleidingForm.setVisible(true);

            btnHandleidingAan.setVisible(false);
            btnHandleidingUit.setVisible(true);
        }
    }
Wat ik heb gedaan is de variabele een andere naam gegeven.
HandleidingForm ipv HandleidingMaanmaken
Het is _niet_ handig om een variabele dezelfde naam te geven als een class.
Dan kan je zo op het laatst niet meer uit elkaar houden,

Nu doet hij het bij mij goed.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan