有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我使用了这个网站的一些信息来找到如何使用URL将图像放入jar文件;我希望能单独使用。但是当我用BlueJ制作jar文件时,只显示了一些图像

这是一个21点游戏,只有桌面画布出现,而从来没有牌出现。以下是代码:

这是有效的(表格):

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张牌(包括经销商隐藏的牌),我不想把所有的牌都放在根上。我试图以同样的方式实现它们。我该怎么做


共 (1) 个答案

  1. # 1 楼答案

    看起来像是从

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

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

    成功了