ActionListener для JMenuItems
Здравствуйте форумчане!
Создаю пользовательский интерфейс по заданию и не понимаю, как правильно реализовать слушателей для JMenuItems. Хотел сделать выход из программы при нажатии на элемент меню, но выдаёт ошибку: exit Невозможно разрешить, или это не поле
Вот код:
package test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class TestProg extends JFrame
{
private static final long serialVersionUID = 1L;
//--------------------------------------------------------
/**
* Конструктор класса
*/
GlobalOption GlobOpt = new GlobalOption(this);
public TestProg()
{
super("Системное меню");
setDefaultCloseOperation( EXIT_ON_CLOSE );
// Создание строки главного меню
JMenuBar menuBar = new JMenuBar();
JMenuItem exit = new JMenuItem("Выход");
// Добавление в главное меню выпадающих пунктов меню
menuBar.add(CreateFileMenu());
menuBar.add(exit);
exit.addActionListener(GlobOpt);
// Подключаем меню к интерфейсу приложения
setJMenuBar(menuBar);
// Открытие окна
setSize(720, 300);
setLocationRelativeTo(null);
setVisible(true);
}
//--------------------------------------------------------
/**
* Функция создания меню "Файл"
*/
private JMenu CreateFileMenu()
{
// Создание выпадающего меню
JMenu file = new JMenu("Создание файлов");
// Пункт меню "Открыть" с изображением
JMenuItem NewTxt = new JMenuItem("Формат TXT");
JMenuItem NewWord = new JMenuItem("Формат Word");
JMenuItem NewExcel = new JMenuItem("Формат Excel");
JMenuItem NewCSV = new JMenuItem("Формат CSV");
file.add(NewTxt);
file.add(NewWord);
file.add(NewExcel);
file.add(NewCSV);
NewTxt.addActionListener(GlobOpt);
NewWord.addActionListener(GlobOpt);
NewExcel.addActionListener(GlobOpt);
NewCSV.addActionListener(GlobOpt);
return file;
}
public class GlobalOption implements ActionListener {
TestProg parent;
GlobalOption(TestProg parent){// Конструктор сохраняет ссылку на окно калькулятора
this.parent = parent;
}
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem clickedMenuItem = (JMenuItem) e.getSource();
String clickMenuItemLabel = clickedMenuItem.getText();
if (src == parent.exit) {
System.exit(0);
}
else
{
JOptionPane.showConfirmDialog(null,
"Вы работаете в режиме " + clickMenuItemLabel, "EditOffice",
JOptionPane.PLAIN_MESSAGE);
}
}
}
//--------------------------------------------------------
public static void main(String[] args)
{
new TestProg();
}
}