Zamykanie programu z poziomu innej klasy

0

Witam wszystkich,
Dopiero zaczynam moją przygodę z programowaniem więc proszę o wyrozumiałość. Stworzyłem dwie klasy - Window i MenuBarCreator. W drugiej klasie buduję całe menu, z którego później chcę obsługiwać pozostałe elementy programu. W jaki sposób mogę zamknąć program z poziomu klasy MenyBarCreator? Generalnie menu działa, pojawia się komunikat testowy w konsoli. Kombinuję z metodą dispose(), ale nic mi z tego nie wychodzi...

Czy profesjonalnie tworząc aplikację menu tworzy się w osobnej klasie? Wydaje się to bardziej czytelne i prostsze do dalszych modyfikacji, ale może są przyjęte jakieś inne standardy postępowania. Jestem samoukiem i nie miałem styczności jeszcze z profesjonalnym programowaniem. Gdyby ktoś miał jakieś materiały na temat standardów budowania programów byłbym zobowiązany. W internecie, poza ogólnymi paradygmatami nic szczegółowego nie znalazłem.

package MenuBarTest;

import javax.swing.*;

class Window extends JFrame {

    public Window() {
        MenuBarCreator menuBar = new MenuBarCreator();
        setJMenuBar(menuBar);
        pack();
        setVisible(true);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Testy menu");
        setSize(400,400);
    }



    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e){
            e.printStackTrace();
        }

        new Window();
    }
}

package MenuBarTest;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import MenuBarTest.Window;

class MenuBarCreator extends JMenuBar implements ActionListener{

    JMenu menu;
    JMenuItem menuItemNew;
    JMenuItem menuItemSave;
    JMenuItem menuItemExit;

    public MenuBarCreator() {
        menu = new JMenu("File");
        menuItemNew = new JMenuItem("New");
        menuItemSave = new JMenuItem("Save");
        menuItemExit = new JMenuItem("Exit");
        menu.add(menuItemNew);
        menu.add(menuItemSave);

        menu.add(menuItemExit);
        menuItemExit.addActionListener(this);


        this.add(menu);
    }


    public void actionPerformed(ActionEvent e) {
        Object menuSource = e.getSource();

        if (menuSource == menuItemExit){
            System.out.println("Exit selected");
            //How to exit Window? Method dispose() does not work.
        }
    }
}
1

System.exit(0);

0

Thx

1 użytkowników online, w tym zalogowanych: 0, gości: 1