Java Swing JButton 图片错误调试
Java Swing JButton Image Error Debugging
我正在尝试将图像添加到 JButton。我已将名为 Bloop.png 的图像放入我的 类 文件夹下的文件目录中,并使用了以下代码
public class Control extends JInternalFrame {
static JPanel panelButt;
static JButton buttBloop;
static Image imgBloop;
public Control() {
panelButt = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
buttBloop = new JButton("Bloop");
setTitle("Control");
setSize(400, 300);
setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
// CHECK IF FILE EXISTS : this outputs FOUND when run
File location = new File("classes/Bloop.png");
if(location.exists()) {
System.out.println("FOUND");
} else {
System.out.println("NOT FOUND");
}
try {
imgBloop = ImageIO.read(getClass().getResource("classes/Bloop.png"));
buttBloop.setIcon(new ImageIcon(imgBloop));
} catch(IOException log) {
System.out.println(log);
}
add(panelButt, BorderLayout.NORTH);
panelButt.add(buttBloop);
}
}
当我 运行 但是我收到一个错误
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!
这是为什么?我是不是做错了什么?
您的图像 Bloop.png 确实位于类路径的根目录中,因此您应该将其称为“/Bloop.png”:
ImageIO.read(getClass().getResource("/Bloop.png"));
我正在尝试将图像添加到 JButton。我已将名为 Bloop.png 的图像放入我的 类 文件夹下的文件目录中,并使用了以下代码
public class Control extends JInternalFrame {
static JPanel panelButt;
static JButton buttBloop;
static Image imgBloop;
public Control() {
panelButt = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
buttBloop = new JButton("Bloop");
setTitle("Control");
setSize(400, 300);
setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
// CHECK IF FILE EXISTS : this outputs FOUND when run
File location = new File("classes/Bloop.png");
if(location.exists()) {
System.out.println("FOUND");
} else {
System.out.println("NOT FOUND");
}
try {
imgBloop = ImageIO.read(getClass().getResource("classes/Bloop.png"));
buttBloop.setIcon(new ImageIcon(imgBloop));
} catch(IOException log) {
System.out.println(log);
}
add(panelButt, BorderLayout.NORTH);
panelButt.add(buttBloop);
}
}
当我 运行 但是我收到一个错误
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!
这是为什么?我是不是做错了什么?
您的图像 Bloop.png 确实位于类路径的根目录中,因此您应该将其称为“/Bloop.png”:
ImageIO.read(getClass().getResource("/Bloop.png"));