Путь к образу Java в netbeans

#java #netbeans #path #imageicon

#java #netbeans #путь #imageicon

Вопрос:

Я занимаюсь Java, поэтому я создаю сапер. Механика завершена, теперь я хочу сделать ее более удобной для пользователя.

Пытался добавить значок изображения к кнопке в любом случае, но я не могу этого сделать! Я не знаю, как Java работает с этим!

Я делаю это:

(предположим, это расширение JButton)

 super(new ImageIcon("/minesweeper/resources/bomb.png"));
  

У меня есть такие пакеты:

  • сапер
  • сапер.компоненты
  • minesweeper.resources (пытаюсь упорядочить изображения здесь)
  • тест (некоторые материалы только для тестирования)

Я делаю это неправильно? (ofc, но как это правильно?)

Ответ №1:

Вы можете получить изображения таким образом:

 new ImageIcon(getClass().getResource("/minesweeper/resources/bomb.png"))
  

Проверьте документ Java на наличие общедоступного URL-адреса getResource (строковое имя)

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

1. Я думаю, что это самый простой способ.

2. Ну, это не работает. Кнопка просто пуста. Я думаю, что я все еще делаю это неправильно. Я тоже попробую другой метод.

3. Если ваша проблема заключается в том, как поместить изображение на кнопку, проверьте документ о button.setIcon(imgage); метод.

4. О, вы правы — это самый простой способ — я неправильно понял вопрос 🙂 Тогда вы можете просто установить его напрямую.

Ответ №2:

Чтобы избежать любых проблем, которые могут возникнуть, особенно при использовании разных методов упаковки, создайте новый пакет с именем res или что-то в этом роде, затем Res.java вставьте в него a . Поместите ваши изображения в тот же каталог пакетов. Теперь, когда вы хотите что-то прочитать, вы получите InputStream using Res.getClass().getResourceAsStream("filename"); , а затем создайте новый ImageIcon с помощью stream ( new ImageIcon(is) ) . Это дает вам ImageIcon то, что вы можете использовать с меткой.

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

super(new ImageIcon(Res.getClass().getResourceAsStream("filename")));

В противном случае просто используйте setIcon(..); .

Редактировать: вы будете использовать свой существующий resources пакет. Просто поместите Res.java туда.