Отображение imageicon в eclipse не работает

#java #eclipse #imageicon

#java #eclipse #imageicon

Вопрос:

Итак, я только что записал несколько простых кодов, которые просто отображают изображение в JButton. Что я сделал, так это написал код:

 import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Main extends JFrame{

public static ImageIcon bf;
public static JPanel p;
public static JButton b;

public static void main (String args[]){
    Main main = new Main();

    bf = new ImageIcon("car.png");
    p = new JPanel();
    b = new JButton(bf);
    p.add(b);
    main.add(p);

    main.setVisible(true);
    main.setDefaultCloseOperation(main.EXIT_ON_CLOSE);
    main.setSize(600,700);


}

}
  

И я скопировал рисунок с именем car.png в ту же папку, что и мой класс, но, похоже, я не могу заставить его работать в elipse.

введите описание изображения здесь

Но когда я запускаю тот же самый точный код в BlueJ, он запускает его без каких-либо известных проблем. Заранее благодарю за любую помощь.

Комментарии:

1. Работает ли это, если вы используете абсолютный путь к изображению?

Ответ №1:

изменить

 bf = new ImageIcon("car.png"); 
  

Для

     URL url = Main.class.getResource("car.png");
    bf = new ImageIcon(url);
  

Комментарии:

1. Спасибо вам ооочень большое.. Не могли бы вы, пожалуйста, объяснить, что я сделал не так?

2. ваши намерения не были ошибочными, но как вы могли бы указать путь к изображению из контекста, в котором была запущена ваша программа. Этот URL-адрес представляет собой не что иное, как абсолютный путь к вашему изображению, и это не исходное местоположение, а каталог, в котором ваши классы скомпилированы eclipse (выведите этот URL в syso, чтобы узнать это), проверьте каталог project-workspace / bin, вы найдете ваши скомпилированные классы (и ресурсы в исходных пакетах, если таковые имеются) в их соответствующих пакетах, которые также будут упакованы в jar. похоже, вы поместили свое изображение, а также файл src в пакет по умолчанию (eclipse не рекомендует).

Ответ №2:

Проверьте, что if car.png находится в bin каталоге файловой системы (в Eclipse он отфильтрован, поэтому сделайте это в проводнике файлов).

Кстати, я бы предложил использовать что-то вроде ImageIO.read(Main.class.getResource("/car.png")) . Причина в следующем: позже вы, вероятно, упакуете свое приложение (например, в файл Jar). Теперь, если вы сделаете это таким образом, Java сможет найти изображение, даже если оно выполнено в виде Jar или из

Комментарии:

1. Да, я проверил это, и car.png был в корзине старше, в папке проектов

2. Я вспоминаю проблему, заключающуюся в том, что эти изображения обнаруживаются, только если они помещены в корневую папку проекта ( не в src папку).

3. не могли бы вы уточнить, что вы подразумеваете под корневой папкой?

4. Папка, которая содержит src папку (the Test folder).