Java:自定义图标问题

标签 java swing class jframe

我正在尝试将自定义图标添加到我的 JFrame 上。我的项目文件夹中有图标图像,但我似乎无法让它工作。

我也尝试过 setIconImage(new ImageIcon(imgURL).getImage()); 但它似乎也不适合我。

此外,自定义图标的典型尺寸是多少

import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

/**
* @author Curtis
*/
public class Favorites extends JFrame implements ActionListener
{
String[] styles = {"Big Band", "Country", "Pop", "Rock", "Rap"};
Font boxFont = new Font("Times New Roman", Font.BOLD, 14);
JLabel instruct = new JLabel("What is your favorite type of music?");
JComboBox music = new JComboBox(styles);
JTextField result = new JTextField(20);
final int WIDTH = 270;
final int HEIGHT = 125;

public Favorites()
{
    super("Favorite Music");
    setSize(WIDTH, HEIGHT);
    setLayout(new FlowLayout());
    instruct.setFont(boxFont);
    JFrame.setDefaultLookAndFeelDecorated(true);
    add(instruct);
    add(music);
    add(result);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    music.addActionListener(this);
    Image icon = Toolkit.getDefaultToolkit().getImage("icnnote.jpg");
    setIconImage(icon);
}

@Override
public void actionPerformed(ActionEvent e) 
{
    throw new UnsupportedOperationException("Not supported yet.");
}

}

最佳答案

您需要将setIconImage()移至setVisible()上方。它显示调用 setVisible() 时的帧。

更新:您还需要将图像更改为

getToolkit().getImage(getClass().getResource("iccnote.jpg"))

关于Java:自定义图标问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109078/

相关文章:

java - 如何在 UserType nullSafeGet 中获取对象的类型

Java 读取具有特定模式的文件

java - 循环中的 repaint() 仅调用一次 - Java

java - 使用 JComboBox 选择后 JPanel 不刷新

python - 在python中,有没有办法使用类和继承将两个(或更多)按钮输出到屏幕上?

c++ - 错误是因为函数在类中是纯虚拟的?

java - 为什么我需要用finally来关闭资源?

java - 如何使用ListIterator向空列表添加元素?

java - 1 个 JFrame 中的多个 JPanel 在调用时显示

java - 在 Linux 上运行 WEKA