所以,我不知道为什么我的图像没有显示,因为我把图像放在正确的文件夹中,我相信下面的代码是正确的。此代码的结果只是一个空白的白框背景。我认为图像已损坏,但我尝试了不同的图像,结果相同。无论如何,如果有人能解决这个问题,我将非常感激。
package fia_project;
import java.awt.Color;
java.awt.*;
import javax.swing.*;
public class Fia_test extends JFrame {
public Frame kenny;
public Fia_test(){
super("");
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setVisible(true);
setSize(350, 100);
Container pane = getContentPane();
getContentPane().setBackground(Color.WHITE);
ImageIcon icon = new ImageIcon("speaker.png");
JLabel label2 = new JLabel(icon);
add(label2);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Fia_test t = new Fia_test();
}
}
答案 0 :(得分:2)
使用ImageIO.read
代替ImageIcon
,因为如果无法加载图像会产生错误,对诊断更有用。见Reading/Loading an Image
ImageIcon(String)
期望指定的String
表示文件系统上的文件。从代码的外观来看,您可能已将图像放在代码的源目录中。
假设图像已捆绑到生成的Jar文件中,您将无法再像访问文件系统中的文件一样访问该图像,但需要使用Class#getResource
加载它...
例如......
BufferedImage img = ImageIO.read(getClass().getResource("speaker.png"));
ImageIcon icon = new ImageIcon(img);
假设speaker.png
与类文件位于同一目录中。