我遇到了一个奇怪的问题。 今天我在Linux上编写了我的程序,我在图像上输入了一个地址,一切都很好。不知何故,当我在家中尝试Windows时,图像才会显示!(我当然更新了地址) 我应该如何写地图?我应该把它放在程序包中的哪个位置? 我没有改变第二个地址,所以你可以得到这个想法。
如您所见,还有另一个问题。 我需要显示两个图像,但我只看到一个。我应该使用哪种布局,以便彼此相邻显示2张图像?
很抱歉,如果我的问题非常愚蠢,我还是初学者:)
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();
}
}
答案 0 :(得分:1)
Windows中的Chrysanthemum.jpg
。使用jpg
代替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";