Майк К прав: ImageIcons могут загружаться динамически, а изображения могут иметь нулевой размер при первой инициализации. Также обратите внимание, что в Unix и в JAR имена чувствительны к регистру.
попробуйте это:
try{
ImageIcon icon = new ImageIcon("resources/BilKa_Icon_32.png");
MediaTracker mt=new MediaTracker(this);
mt.addImage(icon.getImage(),0);
mt.waitForAll();
this.getFrame().setIconImage(icon.getImage());
}catch(InterruptedException excp){}
-
OK, извинения Я отредактировал addImage - он принимает дополнительный идентификатор параметра, который может быть любым числом.
Что касается вашей ошибки «нет такого конструктора», то она говорит вам, что вам нужно передать Component
в конструктор. Окно вашего приложения является компонентом, поэтому вы должны передать его здесь в качестве параметра. Я использовал this
, потому что большинство людей помещают этот код в class
, который расширяет Frame
, Window
или JFrame
. Так что используйте
MediaTracker mt=new MediaTracker(this.getFrame());