0

我正在尝试创建一个加载 52 张卡片的小程序,将它们洗牌(使用随机数生成器),然后以两排五张的形式显示牌组的前 10 张卡片。我有包含 52 张卡片图像的 HTML 文件,但是有没有一种方法可以加载图像而无需加载每个单独的图像。以及如何从网络加载图像?

4

2 回答 2

2

..有没有办法加载图像而不必加载每个单独的图像

将它们放在一个巨大的图像中,并在运行时对其进行切片。这个答案中有一个例子。

在 Google 图片中搜索“playing+card”,很可能在点击的第一页中会有 2 个或更多的图块集。

但是,更快的是加载:

  1. 卡片背景
  2. ImageShape每个花色符号
  3. ImageFont为字母和数字。

然后在启动时将它们组合起来,形成 52 张卡片中的每一张。

显然,卡片还需要一个共同的“反面”。

你如何从网上加载图像?

通过网址。

一些替代方案:

  1. Applet.getImage(URL)
  2. Toolkit.getImage(URL)
  3. 或用于同步加载的BufferedImage使用ImageIO.read(URL)

前两种方法是异步的并且需要一个ImageObserver.

考虑将其作为使用Java Web Start 启动的应用程序来执行。如果您继续使用小程序,请浏览小程序信息中的链接。页

于 2012-09-30T22:44:42.837 回答
0

尝试这个。

Image[] cards = new Image[52]

private void loadImages(){
    for (int i=0; i<cards.length; i++){
        URL imgUrl = getClass().getResource("image"+(i+1));
        cards[i] = getImage(imgUrl);
    }
}

希望这可以帮助

于 2012-09-30T23:55:26.683 回答