当前位置: 首页 > 知识库问答 >
问题:

使用java小程序显示图像10卡洗牌器有错误:(

尹昀
2023-03-14

我应该使用一个小程序来显示扑克牌的图像。小程序应该从您下载的“images”文件夹中加载一组52张扑克牌图像。小程序应该洗牌(使用随机数生成器)并显示洗牌牌组的前10张牌。将卡片分为两行,每行五张。当我运行程序时,它会显示这个错误。。

    java.lang.ArrayIndexOutOfBoundsException: 10
at pkg12.NewApplet.init(NewApplet.java:69)
at sun.applet.AppletPanel.run(AppletPanel.java:435)
at java.lang.Thread.run(Thread.java:722)

我不知道为什么,所以我不能修复它…

这是我的密码

 package pkg12;

 import java.applet.Applet;
 import java.awt.Graphics;
 import java.awt.Image;
 import java.util.Random;

public class NewApplet extends Applet
{

Image card1;
Image card2;
Image card3;
Image card4;
Image card5;
Image card6;
Image card7;
Image card8;
Image card9;
Image card10;

public void init()
{
    Random random = new Random();
    String cards[][] = {{"c1.gif", "c2.gif", "c3.gif", "c4.gif",
   "c5.gif", "c6.gif", "c7.gif", "c8.gif", "c9.gif", 
   "c10.gif", "cj.gif", "ck.gif", "cq.gif"},
  {"s1.gif", "s2.gif", "s3.gif", "s4.gif",
   "s5.gif", "s6.gif", "s7.gif", "s8.gif",
   "s9.gif", "s10.gif", "sj.gif", "sk.gif",
   "sq.gif"}, {"d1.gif", "d2.gif", "d3.gif",
   "d4.gif", "d5.gif", "d6.gif", "d7.gif",
   "d8.gif", "d9.gif", "d10.gif", "dj.gif",
   "dk.gif", "dq.gif"}, {"h1.gif", "h2.gif",
   "h3.gif", "h4.gif", "h5.gif", "h6.gif",
   "h7.gif", "h8.gif", "h9.gif", "h10.gif",
   "hj.gif", "hk.gif", "hq.gif"}};

    int selectedCard[] = new int[10];
    int selectedSuit[] = new int[10];
    int suit = random.nextInt(4);
    int card = random.nextInt(13);
    boolean newCard = false;

    for(int x = 0; x < 10; x++)
    {
        while(newCard = false)
        {
            newCard = true;
            suit = random.nextInt(4);
            card = random.nextInt(13);

            for(int y = 0; y < x; y++)
            {
                if(selectedCard[y] == card && selectedSuit[y] == suit)
                {
                    newCard = false;
                }
            }
        }

        selectedCard[x] = card;
        selectedSuit[x] = suit;
    }
    card10 = getImage(getDocumentBase(), cards[selectedSuit[10]][selectedCard[11]]);

    card1 = getImage(getDocumentBase(), cards[selectedSuit[1]][selectedCard[1]]);
    card2 = getImage(getDocumentBase(), cards[selectedSuit[2]][selectedCard[2]]);
    card3 = getImage(getDocumentBase(), cards[selectedSuit[3]][selectedCard[3]]);
    card4 = getImage(getDocumentBase(), cards[selectedSuit[4]][selectedCard[4]]);
    card5 = getImage(getDocumentBase(), cards[selectedSuit[5]][selectedCard[5]]);
    card6 = getImage(getDocumentBase(), cards[selectedSuit[6]][selectedCard[6]]);
    card7 = getImage(getDocumentBase(), cards[selectedSuit[7]][selectedCard[7]]);
    card8 = getImage(getDocumentBase(), cards[selectedSuit[8]][selectedCard[8]]);
    card9 = getImage(getDocumentBase(), cards[selectedSuit[9]][selectedCard[9]]);
   card10 = getImage(getDocumentBase(), cards[selectedSuit[10]][selectedCard[10]]);
}

public void paint(Graphics g)
{
    g.drawImage(card1, 30, 30, this);
    g.drawImage(card2, 30, 150, this);
    g.drawImage(card3, 120, 30, this);
    g.drawImage(card4, 120, 150, this);
    g.drawImage(card5, 210, 30, this);
    g.drawImage(card6, 210, 150, this);
    g.drawImage(card7, 300, 30, this);
    g.drawImage(card8, 300, 150, this);
    g.drawImage(card9, 390, 30, this);
    g.drawImage(card10, 390, 150, this);
}
}  

共有2个答案

微生弘
2023-03-14

您的数组大小为10,因此您最多只能获得索引9,因为数组从0开始

请更改以下内容

 card1 = getImage(getDocumentBase(), cards[selectedSuit[0]][selectedCard[0]]);


card10 = getImage(getDocumentBase(), cards[selectedSuit[9]][selectedCard[9]]);
毋修为
2023-03-14

您的< code>selectedSuit和< code>selectedCard是< code>new int[10]

card10 = getImage(getDocumentBase(), cards[selectedSuit[10]][selectedCard[11]]);
 类似资料:
  • 在本作业中,您将使用小程序显示扑克牌的图像。小程序应该从您下载的“images”文件夹中加载一组52张扑克牌图像。小程序应该洗牌(使用随机数生成器)并显示洗牌牌组的前10张牌。将卡片分为两行,每行五张。 我的小程序部分工作,但是当我运行小程序查看器时,显示只是同一张卡十次。这是我的代码:

  • 问题内容: 我很难弄清楚如何在Java小程序中显示Image(或ImageIcon)。以下是我的代码。图片(test.bmp)确实存在并且在D驱动器上,但是当我运行它时,我得到的applet窗口中没有任何内容。有人可以告诉我要显示ImageIcon缺少的内容吗? 谢谢,史蒂夫。 问题答案: 从服务器运行小程序时,无法通过绝对本地文件路径引用映像。 使用ImageIcon(URL位置)构造函数, 并

  • 本文向大家介绍java和js实现的洗牌小程序,包括了java和js实现的洗牌小程序的使用技巧和注意事项,需要的朋友参考一下 这几天刚学了java和javascript,简单写了个用java和javascript的小程序 JavaScript的 java的 总结 以上所述是小编给大家介绍的java和js实现的洗牌小程序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非

  • 问题内容: 我想显示图像,但不知道该怎么办。我是否需要安装某些库文件还是简单地完成安装,我不知道。实际上我想进行图像处理,但是首先我必须接受图像输入并显示图像,然后才能获得图像处理的效果作为输出并确定其(算法)是否正确。我只安装了eclipse。我也曾在Google中搜索过,但是无论他们提出什么建议都无法正常工作。我是否必须安装某些东西。 我尝试了以下代码: 它只是显示一个图形窗口,而不能显示图像

  • 问题内容: 我只是从Java小程序开始,然后发现了这个提供教程的网站。我输入了所有代码,但该小程序未显示在我的浏览器中:HelloWorld.java 这是我的HTML文件 我已经编译了Java文件(HelloWorld.class),并将所有文件保存在桌面上。我在Mac OS X美洲狮上使用的是野生动物园的最新版本。我在谷歌浏览器中尝试过,并说要安装一个插件,但是我没有做任何事情? 问题答案:

  • 问题内容: 如何显示在PHP中使用file_get_contents检索到的图像? 我需要修改标题并仅回显它吗? 谢谢! 问题答案: 我需要修改标题并仅回显它吗? 究竟。 之后发送和数据。