我正在读一本关于java游戏编程的书,我被困在这里。这本书名为" Beginning Java SE 6 Game Programming,Third Edition"作者:Jonathan S,Harbour。我需要在代码的这个特定部分提供帮助,其中加载位图图像并加载它。我得到的只是黑屏。我不清楚它在哪里说字符串文件名和.getResource(文件名)。我还在学习。
我在这里得到了一座城堡的形象,http://www.reinerstilesets.de/2d-grafiken/2d-buildings/
及其具体http://www.reinerstilesets.de/thumbs_t/ts%20062.jpg
请帮助,谢谢。如果你能解释一下,我真的想学习它。
继承代码,
//DrawImage program
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.net.*;
public class DrawImage extends JFrame {
private Image image;
public static void main(String[] args) {
new DrawImage();
}
public DrawImage() {
super("DrawImage");
setSize(600,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit tk = Toolkit.getDefaultToolkit();
image = tk.getImage(getURL("castle.png"));
}
private URL getURL(String filename){
URL url = null;
try{
url = this.getClass().getResource(filename);
}
catch (Exception e){}
return url;
}
public void paint(Graphics g) {
//create an instance of Graphics2D
Graphics2D g2d = (Graphics2D) g;
//fill the background with black
g2d.setColor(Color.BLACK);
g2d.fillRect(0, 0, getSize().width, getSize().height);
//draw the image
g2d.drawImage(image, 0, 40, this);
}
}
答案 0 :(得分:0)
在JFrame中放置和映像的最简单方法就是将其包装在JLabel中:
public class MyImage{
public BufferedImage img;
public MyImage(String path){
try {
img = ImageIO.read(new File(path));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 300, 300);
window.setVisible(true);
window.setSize(600, 400);
MyImage i = new MyImage("YOUR IMG PATH");
JPanel panel = new JPanel();
JLabel label = new JLabel():
label.setIcon(new ImageIcon(i.img));
panel.add(label);
window.add(panel);
}
}