グラフィックスで画像アイコンを描画しようとしていますが、何らかの理由で画像を描画できません。私はすべてが正しいと思っている、私はなぜそれが動作しないのか分からない。グラフィックスに画像アイコンを描画しようとしましたが動作しません
ImageIcon
からBufferedImage
に変更しようとしましたが、動作しません。
提案がありますか?
package game;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args)
{
JFrame frame = new JFrame ("Space Ship Game");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new DirectionPanel());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
そして
package game;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class DirectionPanel extends JPanel
{
private final int WIDTH = 1300, HEIGHT = 900;
private final int JUMP = 10;
private final int IMAGE_SIZE = 31;
private ImageIcon spaceShipImage;
private int x, y;
public DirectionPanel()
{
addKeyListener (new DirectionListener());
x = WIDTH /2;
y = HEIGHT /2;
try
{
spaceShipImage = new ImageIcon(getClass().getResource("/2.gif"));
}
catch (Exception e)
{
System.out.println("sss");
}
setBackground(Color.BLACK);
setPreferredSize (new Dimension(WIDTH, HEIGHT));
setFocusable(true);
}
public void paintComponenet (Graphics g)
{
super.paintComponent(g);
spaceShipImage.paintIcon(this, g, x, y);
}
private class DirectionListener extends KeyAdapter
{
public void keyPressed (KeyEvent event)
{
switch (event.getKeyCode())
{
case KeyEvent.VK_UP:
System.out.println("Dsfdsf");
y -= JUMP;
break;
case KeyEvent.VK_DOWN:
y += JUMP;
break;
case KeyEvent.VK_LEFT:
x -= JUMP;
break;
case KeyEvent.VK_RIGHT:
x += JUMP;
break;
}
repaint();
}
}
}
* "名前はメソッドをオーバーライドする上で非常に重要です。" *これは '@ Override'表記が非常に便利なところです。 ;) –
ありがとう、私はpain.Componenetで余分な 'e'を見ていない! –
@Trying_To_Understand、チェックマークをクリックして回答を「受け入れる」ことを忘れないでください。人々は問題が解決されたことを知ります。 – camickr