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 上没有图标的情况下继续。
我正在阅读 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 上没有图标的情况下继续。