Я работаю над игрой с небольшой командой, и они открыли заявку на изменение IconImage, которая принимает объект ImageIcon.
Я создаю объект ImageIcon с помощью java.net.URL, указывающего на местоположение файла в CLASSPATH.Затем я создаю объект Image из ImageIcon.getImage ().
Позже в программе я передаю упомянутый выше объект Image в jframe.setIconImage ();
Если я запускаюВ отладочной программе я вижу правильный путь к изображению, отражающий его место в CLASSPATH, но значок не меняется.Если я захожу в jframe.setIconImage (), я попадаю в точку, где JFrame.java вызывает JFrame.super.setIconImage (), но значение изображения, передаваемого суперклассу, равно "" (пустая строка).
У меня есть код в основном классе, структура папок src, структура папок out / bin и изображение значения, передаваемого в виде пустой строки.
Любой совет очень ценится и благодарит зазаранее за ваше время.
== Код ==
package orsc;
import orsc.Config;
import javax.swing.*;
import java.applet.Applet;
import java.awt.*;
import java.io.File;
public class ORSCFrame extends ORSCApplet {
private static final long serialVersionUID = 1L;
public String getCacheLocation() {
return Config.F_CACHE_DIR + File.separator;
}
public static void main(String[] args) {
JFrame jframe = new JFrame(Config.SERVER_NAME);
ImageIcon orscIcon = new ImageIcon(ORSCFrame.class.getResource("icon.png"));
Image orscIconImage = orscIcon.getImage();
final Applet applet = new ORSCFrame();
applet.setPreferredSize(new Dimension(512, 334 + 12));
jframe.getContentPane().setLayout(new BorderLayout());
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.getContentPane().add(applet);
jframe.setResizable(true);
jframe.setVisible(true);
// jframe.setAlwaysOnTop(true);
jframe.setBackground(Color.black);
jframe.setMinimumSize(new Dimension(512, 334 + 12));
jframe.setIconImage(orscIconImage);
jframe.pack();
jframe.setLocationRelativeTo(null);
applet.init();
applet.start();
// jframe.add(applet);
}
@Override
public void playSound(byte[] soundData, int offset, int dataLength) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void stopSoundPlayer() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
== папка src ==
== папка out / bin ==
== шаг в строку 33 (jframe.setIconImage (orscIconImage);) ==
== рис. Jframe ==