2014-01-18 2 views
1

У меня есть JLabel, который имеет уже значок, и я хочу, чтобы изменить значок, когда я выйти мышь от метки, я попробовал этот код, он не показывает никакой ошибки синтаксисаизвлечения пути к ImageIcon

private void LabelMouseExited(java.awt.event.MouseEvent evt) {         

if(Label.getIcon().toString().equals("cyberjayacinema/images/Blue%20E1")) 
    { 
     Label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cyberjayacinema/images/red E1.PNG"))); 
    } 

else 
    { 
      Label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cyberjayacinema/images/white E1.PNG"))); 
    } 

но только еще дело работает, хотя ImageIcon установлен в если случае с, поэтому я предполагаю, что ошибка с извлекая путь иконы, я предполагаю, что, как я написал мой getImageIcon был Неправильно, Я хочу, чтобы кто-то мог мне помочь. спасибо

ответ

1

Если вы просто поставить System.out.println(label.getIcon().toString()), вы получите что-то подобное, это

file:/C:/NetBeansProjects/StackOverflow/build/classes/resources/stackoverflow5.png 

Как вы можете видеть, это не соответствует вашему делу.

Вы можете сделать что-то вроде этого, чтобы получить только имя файла

String iconfilename = label.getIcon().toString(); 
String fileName = iconfilename.substring(iconfilename.lastIndexOf("/" ) + 1); 
System.out.println(fileName); 

// output 
stackoverflow5.png 

Тогда просто проверить по имени файла.

if ("stackoverflow5.png".equals(fileName)) { 
    do something 
} 
+0

благодарит много, что было действительно полезно – Alladin

0

Это может помочь вам, если вы пытаетесь получить доступ изображения из папки проекта

Lable test; 
java.net.URL url = ClassLoader.getSystemResource("res/image.png"); 
test.setIconImage(Toolkit.getDefaultToolkit().getImage(url)); 
+0

не могли бы вы объяснить мне, как я могу использовать это в моем случае? потому что я все еще новичок, и я действительно не понял код. – Alladin

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