由于多个错误,我无法编译此代码。大多数错误都在initUI()方法下,该方法是从教程站点复制的。我该如何解决这个问题?
ActionEvent无法解析为类型MenuGUI.java / Misc / src第35行Java问题
ActionListener无法解析为类型MenuGUI.java / Misc / src第34行Java问题
KeyEvent无法解析为变量MenuGUI.java / Misc / src第29行Java问题
KeyEvent无法解析为变量MenuGUI.java / Misc / src第32行Java问题
AbstractButton类型中的方法addActionListener(ActionListener)不适用于参数(new ActionListener(){})MenuGUI.java / Misc / src第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);
}
}
答案 0 :(得分:0)
我可以毫无问题地编译代码,但是我得到了一个运行时异常:
你的照片在正确的目录中吗?在您的代码中,您尝试加载一个图标,当它不存在时,您会得到一个NullPointerException
ImageIcon icon = new ImageIcon(getClass().getResource("exit.png"));
否则将其注释掉,并创建没有图标的菜单项
JMenuItem eMenuItem = new JMenuItem("Exit");
答案 1 :(得分:0)
您的问题是加载ImageIcon。由于在正确的文件夹中找不到图像,因此您将获得nullpointer异常。解决方案很简单:将“exit.png”图像放在与编译的类文件相同的文件夹中。