Java 如何在JFrame中设置默认图标?

Java 如何在JFrame中设置默认图标?,java,swing,icons,jframe,Java,Swing,Icons,Jframe,所以我在做Java,做了一个很好的小程序。代码如下: import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class aa extends JFrame{

所以我在做Java,做了一个很好的小程序。代码如下:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class aa extends JFrame{
    private JButton jb;
    private JTextField jt0;
    private JTextField jt1;
    private JTextField jt2;
    int jti1;
    int jti2;

    public aa(){
        jb = new JButton(">> FIGHT <<");
        jt0 = new JTextField("", 25);
        jt1 = new JTextField("", 25);
        jt2 = new JTextField("<< BATTLE VICTOR >>", 35);    
        jt0.setText("");
        jt2.setEditable(false);

        jb.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(jt0.getText().length() > jt1.getText().length())
                    jt2.setText((jt0.getText() + " << IS VICTORIUS OVER >> " + jt1.getText()));
                else if(jt1.getText().length() > jt0.getText().length())
                    jt2.setText((jt1.getText() + " << IS VICTORIUS OVER >> " + jt0.getText()));
                else if(jt1.getText().length() == jt0.getText().length())
                    jt2.setText((jt1.getText() + " << TIED >> " + jt0.getText()));
            };
        }
        );

        add(jt0, BorderLayout.NORTH);
        add(jt1, BorderLayout.NORTH);
        add(jt2, BorderLayout.NORTH);
        add(jb, BorderLayout.CENTER);
    }
}
}


到目前为止,我已经尝试了整个
setIconImage()
crap,但没有成功。我想添加png、gif或ico图像。我应该把它放在哪里?代码去哪里了?它看起来怎么样?

您实际上使用了
JFrame.setIconImage()
。下面是一个代码示例,它可能出现在
JFrame
的构造函数中,或者更好地出现在
initComponents
方法中:

try {
    Image image = ImageIO.read(aa.class.getResource("/TestImage.png"));
    setIconImage(image);
} (IOException e) {
   // handle exception
}

图像
TestImage.png
将位于类文件所在的根文件夹中。这

尝试在源代码之外创建一个文件夹,然后将图标图像放入其中。然后,使用此代码加载您的图标

b.setIconImage(ImageIO.read(new File("res/icon.png")));

我用这个,每次都能用。

你需要做的就是“setIconImage废话”。也许你做错了?向我们展示一些示例代码和非工作代码。另外,文件夹层次结构中的图像文件在哪里?import javax.swing.JFrame;导入javax.swing.JTextField;public类b扩展了JFrame{private JTextField jt;public b(){jt=new JTextField();jt.setText(“Hello World!”);//'Set icon crap'}}它说“未处理的异常类型IOException”,这个错误说明不了什么。你把图像复制到类根文件夹了吗?我把它添加到了src。所有的.java都在那里。不,它(图像)应该在
bin
folder中。我不知道你可以。它可以将所有内容缩小到合适的大小。
b.setIconImage(ImageIO.read(new File("res/icon.png")));