2015-03-28 2 views
1

Хорошо, я довольно много нового при кодировании, но я стараюсь.Как установить ImageIcon с помощью оператора Switch

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

Я посмотрел на нить здесь: Change image with if statement

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

Revised Code

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; 
    } 
} 

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

ответ

2
{ 
    ImageIcon icon = new ImageIcon(""); 
} 

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

ImageIcon icon; 

Теперь коммутатор оператор может назначить правильную иконку для использования этикетки.

//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». – Rachel

+0

Благодарим за помощь! – Rachel

+0

@Rachel, Да, вы возвращаете значок. Не забудьте «принять» ответ поэтому люди знают, что проблема решена. – camickr

Смежные вопросы