编辑:这是一个Netbeans项目。
因此,我创建了一个称为Card的JButton子类。我试图在创建按钮时设置一个图标。

package matchinggame;

public class Card extends JButton {

    final static ImageIcon defaultIcon = new ImageIcon("cardback.jpg");

    ...

    public Card(int secretIconIndex) {
        //Set the button's icon to the default icon
        setIcon(defaultIcon);
        ...
    }

    ...

}


如果您想知道,“ cardback.jpg”图像的位置是:

C:\Users\Jesse\SkyDrive\Documents\RCS\Grade 12\ICS4U\M9\MatchingGame\src\matchinggame\cardback.jpg


它与所有类都在同一文件夹/程序包中,因此我相信可以保留相对的文件路径。当我运行程序时,所有按钮都是空白(没有文本或图标)。这是构造函数问题还是文件路径问题?

最佳答案

如果这是Eclipse项目,则将映像存储在resources/文件夹中的src/文件夹中。

setButtonIcon("cardback.jpg");

public void setButtonIcon(String filename) {
  ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
  InputStream input = classLoader.getResourceAsStream("/"+filename);
  ImageIcon icon = new ImageIcon(ImageIO.read(input));
  super.setIcon(icon);
}

10-02 02:26
查看更多