为什么我的图像不显示?(JAVA GUI)



我遇到一个奇怪的问题。今天我在Linux上写了我的程序,我输入了一个地址到映像,一切都很好。不知何故,当我尝试在Windows在家里的图像只是不会显示!(当然我更新了地址)我该怎么把地址写在图片上?我应该把它放在程序包的什么地方?我没有改变第二个地址,所以你可以理解。

如你所见,还有另一个问题。我需要显示两个图像,但我只看到一个。我应该使用哪种布局,以显示相邻的两个图像?

很抱歉如果我的问题很愚蠢,我还是一个初学者:)

public class View extends JFrame {
    JPanel jp = new JPanel();
    JLabel jl = new JLabel();
    JPanel jg = new JPanel();
    JLabel jz = new JLabel();
    public View() {
        this.setTitle("Media");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel contentAll =  new JPanel();
        contentAll.setLayout(new BorderLayout());
        //(...)  a pair of buttons here, not relevant I guess
        jl.setIcon(new ImageIcon("/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpeg")); ///Windows
        jp.add(jl);
        add(jp);
        jz.setIcon(new ImageIcon("/home/d/Downloads/chanel.jpg")); /// Linux
        jg.add(jz);
        add(jz);
        jg.setLayout(new FlowLayout());
        this.pack();
    }
}

它在Windows中的Chrysanthemum.jpgjpg代替jpeg

在Windows中添加C:以生成绝对路径。

new ImageIcon("C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg");

——编辑——

对于Windows使用绝对路径。

String userHome = System.getProperty("user.home"); // C:/Users/USERNAME
String userPath = userHome.substring(0, userHome.lastIndexOf("\")); // C:/Users
String fullPath = userPath + "/Public/Pictures/Sample Pictures/Chrysanthemum.jpg";

相关内容

  • 没有找到相关文章

最新更新