繁体   English   中英

为什么我的BlueJ jar文件加载某些图像,而不加载其他图像?

[英]Why does my BlueJ jar file load some images, but not others?

我使用了该站点周围的一些信息来查找使用URL将图像放入jar文件中的方法。 我希望能够单独使用。 但是,当我使用BlueJ制作jar文件时,仅显示一些图像。

它是二十一点游戏,只显示桌面画布,而没有纸牌。 这是代码:

此工作(表):

public class TableComponent extends JLabel{

  BufferedImage table;


  public TableComponent(){
    URL finalTable = getClass().getResource("blackjackTableCanvas.jpg");
        try {
        table = ImageIO.read(finalTable);
    } catch (IOException e) {
        e.printStackTrace();
    }

  }

  @Override
protected void paintComponent(Graphics g) {
  Graphics2D g2 = (Graphics2D) g;
    super.paintComponent(g2);
    g2.drawImage(table, 0, 0, null);
}...}

但这不(卡片):

public class CardRender2 extends JComponent{

  BufferedImage image;
  String val;
  String suit;
  String filename;

  public CardRender2(Card card) {
    this.val = card.value.face;
    this.suit = card.suit.toString();
    filename = this.fetchCardFileLabel();

    URL cardview = getClass().getResource("\\card deck\\" + filename + ".png");
    try {

      image = ImageIO.read(cardview);
    } catch (IOException e) {
      e.printStackTrace();
    }

  }
  public CardRender2(){
    this.val = null;
    this.suit = null;
    filename = "DEALER_FIRST_CARD";

    URL cardview = getClass().getResource("\\card deck\\DEALER_FIRST_CARD.png");
    try {

      image = ImageIO.read(cardview);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  @Override
  protected void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    super.paintComponent(g2);
    g2.drawImage(image, 0, 0, null);

  }...}

我的卡在我尝试导入BlueJ的目录中的文件夹中,而表在目录根目录中。 那里有53张卡(包括发牌人隐藏的卡),我宁愿不把所有的卡都放在根中。 我试图类似地实现它们。 我怎样才能做到这一点?

看起来像从

URL cardview = getClass().getResource("\\card deck\\DEALER_FIRST_CARD.png");

 URL cardview = getClass().getResource("card deck/DEALER_FIRST_CARD.png");

做到了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM