2012-06-19 59 views
0

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

我也试过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."); 
} 

} 

回答

5

你需要移动setIconImage()setVisible()上述典型尺寸。它会在调用setVisible()时显示框架。

UPDATE:您还需要你的形象改变

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

+0

是你的“icnnote.jpg”文件位于同一目录中的类文件? –

+0

我改变了代码的顺序,但它似乎仍然没有工作。 Image icon = Toolkit.getDefaultToolkit()。getImage(“icnnote.jpg”); setIconImage(icon); setVisible(true); –

+0

查看我的上述评论 –