swing如何使用Java显示图像?
基本上我的图像不会显示,我几乎可以肯定这是我的文件路径 (“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);
}
}
# 1 楼答案
使用“\”没有问题,只要它是转义的,正如您所做的,如果您愿意,您可以使用
/
,而在Windows上,JRE将对此进行更正但是,您应该单独添加
image
,例如现在的操作方式假定
image
是label1
的布局约束,而事实并非如此您应该尽量避免使用绝对路径,并学会使用相对路径和/或将资源嵌入到应用程序上下文中,这样在运行时更容易找到这些资源
# 2 楼答案
在项目中创建一个文件夹,并将其命名为“资源”,然后将图像放入该文件夹中。这将确保给定的映像位于类路径上,并且易于访问
然后你可以做:
访问外部资源的问题是需要转义特殊字符,而且如果您导出项目并将其交给其他人,他/她将无法获得软件所需的映像;)