很簡單,我無法繪製此圖像。`Graphics.drawImage()`不會繪製
public class RenderMap extends JPanel {
static BufferedImage brick;
static BufferedImage groundb;
public static void main(String[] args) {
JFrame window = new JFrame("Super Mario");
RenderMap content = new RenderMap();
window.setContentPane(content);
window.setBackground(Color.WHITE);
window.setSize(1200, 800);
window.setLocation(100,0);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.setVisible(true);
try {
brick = ImageIO.read(new File("SuperMario/brick.png"));
} catch (IOException e) {
}
try {
URL url = new URL("SuperMario/brick.png");
brick = ImageIO.read(url);
} catch (IOException e) {
}
try {
groundb = ImageIO.read(new File("SuperMario/ground.png"));
} catch (IOException e) {
}
try {
URL url = new URL("SuperMario/ground.png");
groundb = ImageIO.read(url);
} catch (IOException e) {
}
}
public Ground ground;
public RenderMap() {}
public void paintComponent(Graphics g) {
if(ground == null) {
ground = new Ground();
}
ground.draw(g);
}
public class Ground implements ImageObserver {
Ground(){}
void draw(Graphics g) {
g.drawImage(groundb, 0, 0, 1200, 800, this);
g.fillOval(8, 8, 16, 16);
}
@Override
public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
// TODO Auto-generated method stub
return false;
}
}
}
這繪製了橢圓形,但不是圖像。我試圖改變到另一個圖像(即在另一個程序中運行),它仍然無法工作,所以我知道這不是圖像的問題。
夥計,這看起來像你從學校做的功課!無論如何,你可以檢查'.read()'圖像時是否拋出'IOException'。 「catch」塊都是空白的,所以你不知道它是否成功加載圖像文件。 –
@lanthe:我不認爲它是家庭作業 - 該文件夾命名爲'SuperMario' :) @chris:嘗試'在你的catch塊中的e.printStackTrace()'作爲lanthe建議 - 之後,在這裏發佈輸出。 – chris
@lanthe:是的,這是一個學校項目! –