我正在尝试在我的应用程序中显示图像...
picture = new JLabel("No file selected");
picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
picture.setHorizontalAlignment(JLabel.CENTER);
scrollPane.setViewportView(picture);
ImageIcon icon = new ImageIcon("map.jpg");
picture.setIcon(icon);
if (picture.getIcon() != null) // to see if the label picture has Icon
picture.setText("HERE IS ICON");
当我运行该代码时,只显示“HERE IS ICON”文本。 对不起,如果这个问题听起来很愚蠢,但我真的不知道为什么没有显示图像图标:(
答案 0 :(得分:3)
您需要确保map.jpg作为文件存在。如果您想确定(仅用于测试目的),请尝试使用完整路径。你拥有它的方式,路径是相对于应用程序的起始目录。
您可以仔细检查它是否存在:
System.out.println(new java.io.File("map.jpg").exists());
答案 1 :(得分:2)
你可以这样做:
ImageIcon icon = createImageIcon("map.jpg", "My ImageIcon");
if (icon != null) {
JLabel picture = new JLabel("HERE IS ICON", icon, JLabel.CENTER);
picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
picture.setHorizontalAlignment(JLabel.CENTER);
scrollPane.setViewportView(picture);
}
createImageIcon方法(在前面的代码段中使用)查找指定的文件并返回该文件的ImageIcon,如果找不到该文件,则返回null。这是一个典型的实现:
/** Returns an ImageIcon, or null if the path was invalid. */
protected ImageIcon createImageIcon(String path,
String description) {
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
答案 2 :(得分:0)
文件map.jpg可能与java文件不在同一个包(文件夹)中。检查一下。