非常に単純に、私はこのイメージを描くことができませんでした。`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:キャッチブロックでe.printStackTrace()を試してみましょう。 – chris
@lanthe:はい、学校のプロジェクトです! –