基本上我的图像不会显示,我几乎可以肯定这是我的文件路径 (“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);
}
}
答案 0 :(得分:2)
使用" \"没有问题只要它已经逃脱,就像你所做的那样,如果你愿意,你可以使用/
而不是在Windows上,JRE会纠正它。
但是,您应该单独添加image
,例如......
image.setIcon(new ImageIcon("C:\\Users\\Alex\\Desktop\\card.jpg"));
panel.add(label1);
panel.add(image);
您现在采用的方式假设image
是label1
的布局约束,它不是。
您应该尝试避免使用绝对路径并学习使用相对路径和/或在应用程序上下文中嵌入资源,这样可以更轻松地在运行时找到这些资源。
答案 1 :(得分:0)
在项目中创建一个文件夹并将其命名为“资源”并将图像放入该文件夹中。这将确保给定的图像位于类路径上并且可以轻松访问。
然后你可以这样做:
new ImageIcon("resources/card.jgp")
访问外部资源的问题是需要转义特殊字符,如果您导出项目并将其提供给其他人,他/她将无法获得软件所需的图像;)