将java图像分配给对象的不同实例(扑克牌)

将java图像分配给对象的不同实例(扑克牌),java,Java,我正在尝试编写一个小程序来显示卡片包和其他东西 我有一个文件夹,里面有52张卡片图片 我如何将图像分配给卡对象的每个实例 我是否需要在对象中创建一个52图像数组,然后为每张卡分配正确的索引 谢谢是什么阻止您创建一个字段,image,该字段本身包含一个图像(java.awt.image的实例或您在UI中使用的任何东西)?您看过了吗?您可以将getImage()方法添加到Card类中,该类根据卡的Rank和Suite返回正确的图像。这当然意味着图像文件的命名约定是一致的,例如 private sta

我正在尝试编写一个小程序来显示卡片包和其他东西

我有一个文件夹,里面有52张卡片图片

我如何将图像分配给卡对象的每个实例

我是否需要在对象中创建一个52图像数组,然后为每张卡分配正确的索引


谢谢

是什么阻止您创建一个字段,
image
,该字段本身包含一个图像(java.awt.image的实例或您在UI中使用的任何东西)?

您看过了吗?您可以将
getImage()
方法添加到
Card
类中,该类根据卡的
Rank
Suite
返回正确的图像。这当然意味着图像文件的命名约定是一致的,例如

private static final String IMAGE_DIR = // image directory

public BufferedImage getImage() {
    String fileName = suite + "_" + rank + ".jpg";
    File file = new File(IMAGE_DIR, fileName);
    return ImageIO.read(file);
}

你也应该考虑缓存图像,这样你就不会每次需要时从文件中读取图像。

< P>我建议一张卡应该是一个不可变的对象。 因此,我将在卡的构造上定义卡的图像:

例如:

然后,您可以像这样填充一个组:

Set<Card> deck = new HashSet<Card>();
for (int value = 1 ; value <= 13 ; value++) {
    for (Suit suit : Suit.values()) {
        deck.add(new Card(value, suit));
    }
}
Set deck=newhashset();
对于(int值=1;值
Set<Card> deck = new HashSet<Card>();
for (int value = 1 ; value <= 13 ; value++) {
    for (Suit suit : Suit.values()) {
        deck.add(new Card(value, suit));
    }
}