java - 如何在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{
    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);
    }
}

这是运行脚本:

import java.awt.FlowLayout;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class a{
    public static void main(String[] args){
        aa b = new aa();

        b.setLayout(new FlowLayout());
        b.setTitle("BattleWords");
        b.setSize(420, 150);
        b.setVisible(true);
        b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

}

到目前为止,我已经尝试了整个 setIconImage() 废话,但它不起作用。我想添加 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 将位于类文件所在的根文件夹中。这个

关于java - 如何在JFrame中设置默认图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020702/

相关文章:

java - GridBagLayout 不排序我的元素

java - 从 JTable 获取选定 JCheckBox 的数据

java - 如何通过单击按钮来销毁框架?

c++ - MS 色带 : draw button icon from code

java - Swing 组件不可见

java - 我应该如何使用 google guava hashCode() 调用 super.hashcode

java - 在文件中保存 Java String VS 中的段落

java - 更改未在 paint 方法中绘制的图形的颜色

c++ - 动态加载窗口图标

java - 如何更改鼠标进入/鼠标退出时按钮的图标图像?