如何使用Java显示我的图像?

时间:2014-12-08 00:55:08

标签: java swing

基本上我的图像不会显示,我几乎可以肯定这是我的文件路径  (“C:\ Users \ Alex \ Desktop \ card.png”是图像属性所说的文件路径,但除非我把双斜线混淆它们以用于转义序列。)如果有人有答案,将非常感谢。这是我的代码:

import java.awt.*;
import javax.swing.*;
public class IDK extends JFrame {



public static void main(String args[]) {

    new IDK();


}

public IDK(){

        notsure();

        }
public void notsure(){


    setBounds(420,100,440,400);
    setTitle("Frame");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel = new JPanel();
    JLabel label1 = new JLabel("Tell me something");
    JLabel image = new JLabel();
    label1.setText("New Text");
    JTextField text = new JTextField("Insert text",30);
    image.setIcon(new ImageIcon("C:\\Users\\Alex\\Desktop\\card.jpg"));
    panel.add(label1,image);
    panel.add(text);
    add(panel);
    validate();
    panel.setBackground(Color.CYAN); 
    setVisible(true);

}

}

2 个答案:

答案 0 :(得分:2)

使用" \"没有问题只要它已经逃脱,就像你所做的那样,如果你愿意,你可以使用/而不是在Windows上,JRE会纠正它。

但是,您应该单独添加image,例如......

image.setIcon(new ImageIcon("C:\\Users\\Alex\\Desktop\\card.jpg"));
panel.add(label1);
panel.add(image);

您现在采用的方式假设imagelabel1的布局约束,它不是。

您应该尝试避免使用绝对路径并学习使用相对路径和/或在应用程序上下文中嵌入资源,这样可以更轻松地在运行时找到这些资源。

答案 1 :(得分:0)

在项目中创建一个文件夹并将其命名为“资源”并将图像放入该文件夹中。这将确保给定的图像位于类路径上并且可以轻松访问。

然后你可以这样做:

new ImageIcon("resources/card.jgp")

访问外部资源的问题是需要转义特殊字符,如果您导出项目并将其提供给其他人,他/她将无法获得软件所需的图像;)