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