Class 无法声明类型

Class can`t declare type

我正在阅读 thenewboston 的教程,但出现意外错误。我已尝试执行 Eclipse 建议的所有操作,但无法弄清楚问题出在哪里。

这是我的Main Class

import javax.swing.JFrame;

class Main {
 public static void main(String args[]) {

     Gui go = new Gui();
     go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     go.setSize(300,200);
     go.setVisible(true);

 }
}

这是GUI Class 导入 java.awt.FlowLayout; 导入 java.awt.event.ActionListener; 导入 java.awt.event.ActionEvent;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;


public class Gui extends JFrame {

    private JButton reg;
    private JButton custom;

    public Gui(){

        super("The title");
        setLayout(new FlowLayout());

        reg = new JButton("Regular Button");
        add(reg);

        Icon b = new ImageIcon(getClass().getResource("b.png"));
        Icon a = new ImageIcon(getClass().getResource("a.png"));
        custom = new JButton("Custom", b);
        custom.setRolloverIcon(a);
        add(custom);

        HandlerClass handler = new HandlerClass();
        reg.addActionListener(handler);
        custom.addActionListener(handler);

    }
    private class HandlerClass implements ActionListener{
        public void actionPerformed(ActionEvent event){
            JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand()));
        }
    }

}

感谢兄弟们的帮助!

您发布了几个不同的堆栈跟踪,错误在不同的行号上,但代码似乎已经移动了。错误本身是在谈论 ImageIcon 的构造函数中的 NullPointerException。与 JButton 没有任何关系,因此标签具有误导性。

基本上您正在查找 b.png 和 a.png 的图像位置。如果这两个文件不存在,那么您将得到一个运行时异常。快速修复是将这两个图像添加到项目中以便找到它们。

一个更稳健的解决方案是处理异常并输出更有意义的错误,或者只是在 gui 上没有图标的情况下继续。