我试图将正确的图像添加到每个卡片对象中,但我似乎无法让它工作。我试图将它合并到我的fillDeck()方法中,但不确定最好的方法是什么。
这是我得到的:
public void fillDeck() {
Iterator suitIterator = CardSuit.VALUES.iterator();
while(suitIterator.hasNext()) {
CardSuit suit = (CardSuit) suitIterator.next();
Iterator rankIterator = CardValue.VALUES.iterator();
while(rankIterator.hasNext()) {
CardValue value = (CardValue) rankIterator.next();
/* This is the problem area :L */
String imageFile = imageLocation + Card.getImageFilename(suit, value);
ImageIcon image = new ImageIcon(getImage(getCodeBase(), imageFile));
/* --------------------------- */
Card card = new Card(suit, value, image);
addCard(card);
}}}
图像位置初始化为:private final String imageLocation = "cardImages/";
和getImageFilename如下:
public static String getImageFilename( CardSuit suit, CardValue value ) {
return suit.getSuitAcronym() + value.getValueAcronym() + ".png";
}
我正在检查imageIO,但不太确定如何实现这一点。此处也是我的文件树,可能是我将图片文件夹放在错误的位置:http://i.stack.imgur.com/Jt6po.png
所以是的,对于长篇文章感到抱歉,希望有人可以提供一些有关我应该如何解决这个问题的见解,或者你是否能发现一些错误。
答案 0 :(得分:0)
使用Java加载图像:
BufferedImage image = null;
try{
image = ImageIO.read(new File("location.png"));
} catch(Exception e){e.printStackTrace();}