所以我试图获取指定的图像作为 Jbutton 的“外观”,但它不起作用。有什么想法吗?
代码:
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:\用户\ *用户*\workspace\Pede\pede_Exe\resources\quit_button.bmp
最佳答案
“不工作”并没有什么意义,但我怀疑 ImageIO 在设置图标之前抛出了异常。这通常(但不完全)是因为您的路径错误。
首先,也是最重要的,打印堆栈跟踪。对你来说应该是这样,
ex.printStackTrace();
在你的catch block 中。该堆栈跟踪是指向有问题代码的箭头,并且通常附有简单的英语解释。养成习惯,你不会后悔的。
其次,确保您在正确的位置寻找图像。最简单的方法可以在这里找到:Find where java class is loaded from
正如您所看到的,有很多可能性。如果你的类的路径与你的资源的路径复合,不是真实的东西,那么 ImageIO 将找不到你的图标。
关于java - JButton ImageIcon 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30223097/