所以我试图将指定的图像作为Jbutton的“look”,但它只是不起作用。任何想法?
代码:
JButton btnClose = new JButton("Close");
try {
Image img = ImageIO.read(Window.class.getResource("resources/quit_button.bmp"));
btnClose.setIcon(new ImageIcon(img));
} catch (IOException ex) {
}
btnClose.setVisible(true);
btnClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
}
});
我的图片路径是: C:\用户\ *用户* \工作空间\ PEDE \ pede_Exe \资源\ quit_button.bmp
答案 0 :(得分:1)
“不工作”不是很多,但我怀疑是ImageIO在设置图标之前抛出异常。这通常(但不是唯一)因为你的路径是错误的。
首先,打印堆栈跟踪。应该是,对你来说,
ex.printStackTrace();
在你的catch区块中。该堆栈跟踪是有问题的代码的箭头,并且通常附有简明的英语解释。养成这个习惯,你不会后悔的。
其次,请确保您正在寻找适合您图像的地方。最简单的方法可以在这里找到:Find where java class is loaded from
如您所见,有很多可能性。如果您的类的路径与资源的路径混合在一起并不真实,那么ImageIO将找不到您的图标。