Как я могу получить изображение, а затем использовать его, чтобы сделать ImageIcon в Java GUI - PullRequest
1 голос
/ 29 ноября 2011

Я пытаюсь сделать карточную игру и столкнулся с проблемой с моей функцией getImage (). У меня есть строковый массив карт, например:

private static String[] hearts = {"ah.gif","2h.gif","3h.gif","4h.gif","5h.gif","6h.gif","7h.gif","8h.gif","9h.gif","th.gif","jh.gif","qh.gif","kh.gif"};

Мой getImage () выглядит так:

public String getImage(Card card){

    if (0 == suit){
        img = hearts[rank];
    }
    else if (1 == suit){
        img = spades[rank];
    }
    else if (2 == suit){
        img = diamond[rank];
    }
    else if (3 == suit){
        img = clubs[rank];
    }

Однако, поскольку он хранится в виде строки, я получаю сообщение об ошибке при попытке использовать img в качестве ImgIcon Ex:

    ImageIcon image = (card.getImage(card));
    JLabel label = new JLabel(image);

Есть идеи? Спасибо

1 Ответ

1 голос
/ 29 ноября 2011

Создайте массив ImageIcons и используйте массив String и цикл for для создания массива Icon. Просто. :)

// in declaration section  
private ImageIcon heartsIcons = new ImageIcon[hearts.length];  

  // in code section
  try {
     for (int i = 0; i < hearts.length; i++) {
        // you may need different code to get the Image file vs. resource.
        BufferedImage img = ImageIO.read(getClass().getResource(hearts[i]));
        heartsIcons[i] = new ImageIcon(img);
     }
  } catch (IOException e) {
     e.printStackTrace();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...