Java 向自定义绘制的JPanel添加图像
我试图将图像添加到我的Java 向自定义绘制的JPanel添加图像,java,image,swing,Java,Image,Swing,我试图将图像添加到我的JPanel。 首先,我将图像(.png)拖到项目文件夹中。 然后我输入了下面的代码,但是没有显示图像,只有黑色背景 GamePanel 游戏 在Eclipse中对此进行了测试-代码与位于project目录(不在src目录)中的“space ship.png”一样工作 1)应用程序资源在部署时将成为嵌入式资源,因此现在就开始像访问一样访问它们是明智的。必须通过URL而不是文件访问。有关如何形成URL的信息,请参见。2) 请对代码和代码片段、结构化文档(如HTML/XML或输
JPanel
。
首先,我将图像(.png)拖到项目文件夹中。
然后我输入了下面的代码,但是没有显示图像,只有黑色背景
GamePanel
游戏
在Eclipse中对此进行了测试-代码与位于project目录(不在src目录)中的“space ship.png”一样工作
1)应用程序资源在部署时将成为嵌入式资源,因此现在就开始像访问一样访问它们是明智的。必须通过URL而不是文件访问。有关如何形成URL的信息,请参见。2) 请对代码和代码片段、结构化文档(如HTML/XML或输入/输出)使用代码格式。为此,选择文本并单击邮件发布/编辑表单顶部的
{}
按钮。“我将图像拖到项目文件夹”。。。听起来您正在使用IDE。日食?上网本?IntelliJ?知道哪一个可能有用。IDE不能从项目根目录运行应用程序,而是从子文件夹运行。或者,您可能已将图像拖到“src”文件夹中,而应用程序不是从该文件夹运行的。只要映像位于正确的位置,代码看起来就可以工作(至少在打包部署之前是这样)。首先感谢ppl和im的帮助使用eclipseposted代码可以工作-检查映像是否在项目文件夹中,是否可读,是否拼写正确,是否真的是PNG。还要检查应用程序是否正在项目文件夹中运行。如果i.getIconHeight()
返回-1图标未找到/加载“first thanks for help ppl”提示:添加@AJNeufeld(或任何人,@
很重要)以通知此人新的评论。顺便说一句,你有没有按照我建议的方式去做?一些IDE会在项目运行时自动对其进行Jar。使用URL的方法可以使用Jar或松散资源,只要路径正确。只有当资源不在Jar中时,才能通过文件路径加载映像。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class GamePanel extends JPanel{
private ImageIcon i;
public GamePanel(){
setBackground(Color.BLACK);
setPreferredSize(new Dimension (1080, 720));
i = new ImageIcon("space-ship.png");
}//end constructor
public void paintComponent (Graphics g) {
super.paintComponent (g);
i.paintIcon(this, g, 300, 300);
}
}//end class
import java.awt.Dimension;
import javax.swing.JFrame;
public class game {
public static void main(String[] args) {
JFrame frame = new JFrame("space ship game");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(1080,720));
frame.add(new GamePanel());
frame.setVisible(true);
frame.pack();
}//end main
}//end class