这是我的代码:
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class SenzuView extends JFrame {
JLabel label;
public SenzuView(){
ImageIcon image = new ImageIcon("C:\\senzu.jpg");
label = new JLabel("", image, JLabel.CENTER);
this.add(label);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setVisible(true);
}
public static void main(String[] args) {
new SenzuView();
}
}
问题是框架打开但是它是空的,图像永远不会出现 提前致谢
答案 0 :(得分:1)
我建议您使用getClass.getResource
,因为如果您以后想要将项目编译成.jar文件,图像将随项目一起提供,否则如果您继续使用解决方案路径,它们将不会出现最初开始。
初始化图像图标如下:
ImageIcon image = new ImageIcon(getClass().getResource("res/senzu.jpg"))
以下是我建议你应该SenzuView
编码的示例:
public SenzuView(){
setLayout(new BorderLayout());
ImageIcon image = new ImageIcon(getClass().getResource("res/senzu.jpg"));
label = new JLabel(image);
this.add(label, BorderLayout.CENTER);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true)
}
我希望这解决了它并给了你一些其他有用的提示。
答案 1 :(得分:-1)
我建议您在项目目录中创建一个名为 images 的文件夹。然后给出这样的路径:
ImageIcon image = new ImageIcon("images/senzu.jpg");
这样可行。
如果您需要绝对路径,请使用
C:/Program Files/workspace/Senzu/images/senzu.jpg
希望它能解决你的问题。