Java JFrame ImageIcon问题-JFrame.super.setIconImage()说图像等于空字符串

时间:2018-12-13 01:26:35

标签: java swing jframe imageicon

我正在与一个小团队一起进行游戏,他们已经打开了一张票以更改IconImage,它带有ImageIcon对象。

我创建一个ImageIcon对象,该对象的java.net.URL指向CLASSPATH中的文件位置。然后,我根据ImageIcon.getImage()创建一个Image对象。

稍后在程序中,我将上述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文件夹==

enter image description here

== out / bin文件夹==

enter image description here

==进入第33行(jframe.setIconImage(orscIconImage);)==

enter image description here

== jframe的图片==

enter image description here

0 个答案:

没有答案