Как установить ImageIcon с помощью оператора Switch

1

Хорошо, я довольно много нового при кодировании, но я стараюсь.

Мне нужно создать ImageIcon, который будет использовать оператор switch, чтобы определить, какое изображение будет показано.

Я посмотрел на эту тему: Изменить изображение с помощью оператора if

который рекомендовал оператор switch над выражением if, поэтому я подумал, что это поможет. Но когда я редактирую свой код и изменяю его с того, что у меня было до этого, я получаю сообщение об ошибке: "ImageIcon не может быть разрешен переменной". Я пробовал различные компиляции капитализации, но ни один из них не работает. Я оставил код, который я первоначально имел под первым случаем. Этот код не дает мне никаких сообщений об ошибках, но я думаю, что я не должен создавать новый ImageIcon для каждого случая, так как мне нужно вытащить из одного только в программе и заставить оператор switch определять, какое изображение отображать.

Пересмотренный код

  public ImageIcon dieImage(String string)
   {
       ImageIcon dieImage = new ImageIcon("");

      switch (faceValue){

       case 1: dieImage = new ImageIcon ("src/1.jpg");
       break;
       case 2: dieImage = new ImageIcon("src/2.jpg");
       break;
       case 3: dieImage = new ImageIcon("src/3.jpg");
       break;
       case 4: dieImage = new ImageIcon("src/4.jpg");
       break;
       case 5: dieImage = new ImageIcon("src/5.jpg");
       break;
       case 6: dieImage = new ImageIcon("src/6.jpg");
       break; 
      }
    return dieImage;
   }
}

Любая помощь будет оценена по достоинству.

Теги:
switch-statement
image

1 ответ

2
Лучший ответ
{
   ImageIcon icon = new ImageIcon("");
}

Избавьтесь от {} и просто используйте:

ImageIcon icon;

Теперь ваш оператор switch может назначить правильный значок, который будет использоваться вашей меткой.

//case 1: ImageIcon = ("src/1.jpg");
case 1: icon = new ImageIcon("src/1.jpg");

У вас есть неверный синтаксис, исправьте код, как показано выше.

Ваш другой оператор ничего не делает, поскольку они просто создают значок, но значок не назначается переменной, которую можно использовать. Код должен быть:

//case 2: new ImageIcon("src/2.jpg");
case 2: icon = new ImageIcon("src/2.jpg");

Затем, чтобы использовать этот значок, вам нужно будет обновить ярлык, содержащий значок:

label.setIcon( icon );
  • 0
    Итак, я должен иметь «новый» значок изображения для каждого случая? Это обновленный код с вашими предложениями и изменениями, которые Eclipse хотел, чтобы я внес. Теперь ошибок нет, но я не уверен, должно ли возвращаться значение «dieImage» или «null».
  • 0
    Спасибо за помощь!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню