Меню GUI, помощь в Java - PullRequest
0 голосов
/ 14 июля 2011

Я не могу скомпилировать этот код из-за нескольких ошибок.Большинство ошибок находятся в методе initUI (), который был скопирован с учебного сайта.Как это исправить?

Невозможно разрешить ActionEvent для типа MenuGUI.java / Misc / src line 35 Проблема с Java

Невозможно разрешить ActionListener для типа MenuGUI.java /Строка 34 Misc / src. Проблема Java

KeyEvent не может быть разрешена в переменной MenuGUI.java / Misc / src line 29 Проблема Java

KeyEvent не может быть решена в переменной MenuGUI.java / Misc /src line 32 Проблема Java

Метод addActionListener (ActionListener) в типе AbstractButton не применим для аргументов (новый ActionListener () {}) MenuGUI.java / Misc / src line 34 Проблема Java

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

public class MenuGUI extends JFrame{

private static final long serialVersionUID = 1L;

public static void main(String[] args)
{
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            MenuGUI ex = new MenuGUI();
            ex.setVisible(true);
        }
    });
}

public MenuGUI()
{
    initUI();
}

public void initUI()
{
    JMenuBar menubar = new JMenuBar();
    ImageIcon icon = new ImageIcon(getClass().getResource("exit.png"));

    JMenu file = new JMenu("File");
    file.setMnemonic(KeyEvent.VK_F);

    JMenuItem eMenuItem = new JMenuItem("Exit", icon);
    eMenuItem.setMnemonic(KeyEvent.VK_C);
    eMenuItem.setToolTipText("Exit application");
    eMenuItem.addActionListener(new ActionListener() 
    {
        public void actionPerformed(ActionEvent event) 
        {
            System.exit(0);
        }
    });

    file.add(eMenuItem);

    menubar.add(file);

    setJMenuBar(menubar);

    setTitle("Simple menu");
    setSize(300, 200);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

Ответы [ 2 ]

0 голосов
/ 14 июля 2011

Ваша проблема связана с загрузкой ImageIcon.Так как изображение не найдено в правильной папке, вы получаете исключение nullpointer.Решение простое: поместите изображение «exit.png» в ту же папку, что и файл скомпилированного класса.

0 голосов
/ 14 июля 2011

Я могу скомпилировать код без проблем, но получаю исключение времени выполнения:

У вас есть картинка в правильном каталоге?В своем коде вы пытаетесь загрузить значок, а когда его нет, вы получаете NullPointerException

ImageIcon icon = new ImageIcon(getClass().getResource("exit.png"));

В противном случае закомментируйте его и создайте пункт меню без значка

 JMenuItem eMenuItem = new JMenuItem("Exit");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...