【问题标题】:how to create an array of images in java?如何在java中创建图像数组?
【发布时间】:2017-10-21 00:54:36
【问题描述】:

我正在尝试初始化一副卡片并显示它们(我有 .gif 格式的图像)。我遇到的唯一问题是初始化卡组本身。到目前为止,我已经尝试创建四个数组(每个西装一个):

import java.applet.*;
import java.awt.*;

public class deckOfCards extends Applet
{
    public void init()
    {
        image clubs = new image[13];
        image hearts = new image[13];
        image spades = new image[13];
        image diamonds = new image[13];
    }
}

然后为每件西装做这样的事情:

for( int i = 0; i <= 13; i++ )
{
    clubs[i] = getImage( getDocumentBase(), c(i).gif )
}

(卡片文件保存在文件名 c1.gif、c2.gif.....c13.gif 中)

我收到一条错误消息,提示找不到符号“图像”,但 java.awt.image 没有创建图像对象和图像方法的类吗?

【问题讨论】:

  • 它的Image,大写字母I。
  • 你的for循环不能达到13,应该小于那个。
  • 我强烈建议您通过创建一个具有自己的图像和属性的Card 对象来使您的程序更加面向对象,或者我会闻到意大利面条代码的味道。
  • 我强烈推荐你找一本Java初学者的书,了解一下语言的基础知识:区分大小写、声明和使用数组的正确方法、命名约定、学习阅读javadoc、等等。

标签: java arrays


【解决方案1】:

image 不是AWT 包中的有效类,请将第一个字母大写。

你有一些语法问题:

  • 大写I in Image
  • 缺少左侧数组括号
  • 循环时不要超出 Image 数组的索引
  • getImage 通话需要报价

Java naming conventions 表示类以大写字母开头,您的类也应如此:

public class DeckOfCards extends Applet {

    public void init() {

       Image[] clubs = new Image[13];
       for (int i = 0; i < clubs.length; i++ ) {
            clubs[i] = getImage( getDocumentBase(), "c" + (i + 1) + ".gif");
        }
        ...
    }
}

另外,Applet 是博物馆作品,已被轻量级的javax.swing.JApplet 取代。

【讨论】:

    【解决方案2】:

    这就是使用 ArrayList 容器的方式。在实践中 ArrayList 是.. 一个数组,但更灵活。

    ArrayList<Image> arrayName = new ArrayList<Image>();
    Image imageName = getImage(getCodeBase(),"direction.jpg");
    arrayName.add(imageName);
    

    【讨论】:

    • +1 的建议,但它不能解决 OP 的直接问题
    • 是的,它没有。但也许他会决定在那个问题上他需要更灵活的数据结构,有很多方法,我喜欢告知并了解替代方案。
    • 我同意,很高兴为人们提供指导。但是,恕我直言,我建议您尝试解决问题并提供指导或将其作为评论 - 问题是,有些人可能会选择否决答案,因为他们认为它没有帮助 - 只是说 ;)
    • " 但也许他会决定需要更灵活的数据结构" 对于一副 52 张牌?
    • 好的,MadProgrammer,我明白你的意思,我会考虑的,谢谢 :) 安德鲁 - 我们不知道他打算用那个套牌做什么,是吗? :)
    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 2012-02-10
    • 2014-08-26
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多