有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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);

}

}

共 (2) 个答案

  1. # 1 楼答案

    使用“\”没有问题,只要它是转义的,正如您所做的,如果您愿意,您可以使用/,而在Windows上,JRE将对此进行更正

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

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

    现在的操作方式假定imagelabel1的布局约束,而事实并非如此

    您应该尽量避免使用绝对路径,并学会使用相对路径和/或将资源嵌入到应用程序上下文中,这样在运行时更容易找到这些资源

  2. # 2 楼答案

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

    然后你可以做:

    new ImageIcon("resources/card.jgp")
    

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