【发布时间】:2015-06-13 16:05:02
【问题描述】:
我为一个学校项目创建了以下代码,一个“密码保护器”,真的只是为了好玩。但是,我遇到的问题是图标图像没有出现,而是默认的java“咖啡杯”。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class UserInterfaceGUI extends JFrame
{
private static final long serialVersionUID = 1;
private JLabel userNameInfo; // ... more unimportant vars.
public UserInterfaceGUI()
{
this.setLayout(new FlowLayout());
userNameInfo = new JLabel("Enter Username:"); // ... more unimportant var. declartions
this.add(userNameInfo); // ... more unimportant ".add"s
event e = new event();
submit.addActionListener(e);
}
public static void main(String[] args)
{
//This icon has a problem \/
ImageIcon img = new ImageIcon("[File Location hidden for privacy]/icon.ico");
UserInterfaceGUI gui = new UserInterfaceGUI();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setSize(400, 140);
gui.setIconImage(img.getImage());
gui.setTitle("Password Protector");
gui.setVisible(true);
}
}
谁能告诉我为什么这只是在屏幕底部和窗口顶部的栏上显示 java 咖啡杯?
【问题讨论】:
-
不确定 java 是否可以读取“.ico”文件。尝试使用 .jpg 或 .gif 图片。
-
您确定您的 ImageIcon 已完全初始化(路径错误?)@camickr 你是对的,请参阅stackoverflow.com/questions/12185768/…
-
这并不能解决你的问题,但可以考虑使用
setIconImages,它允许定义不同分辨率的图像 -
让我知道文件是资源文件还是在项目外的文件夹中?此外,我认为您使用的文件必须小于“32 * 32”..
-
@crAlexander “我认为你使用的文件必须小于“32*32”。” Think again。某些 Windows 机器上的图标大小至少达到 40x40。