我现在正在努力奋斗几个小时。我现在制作了一个星期的2D游戏并遇到了一个让我疯狂的问题(可能只是我)!当我插入图像时,它没有显示。当我尝试绘制一个矩形时,它没有显示。这是我的代码:
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
//import java.awt.Image;
//import javax.swing.ImageIcon;
public class SpaceInvaders {
// variables
static Board table;
public static void main(String[] args) {
createGui();
}
static void createGui(){
JFrame frame = new JFrame("Spane Invaders UK");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setPreferredSize(new Dimension(1000, 600));
table = new Board();
frame.add(table);
frame.pack();
frame.setVisible(true);
}
}
class Board extends JPanel{
//Image tank;
public Board(){
//ImageIcon ii = new ImageIcon(this.getClass().getResource("tank.png"));
//tank = ii.getImage();
}
public void painComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
//g2d.drawImage(tank, 10, 10, null);
g2d.drawRect(50, 50, 10, 10);
}
}
可能有一个简单的解决方案,实际上很简单,在Google上找不到它。然而,我被困住了。为什么没有发生?我该如何解决这个问题?
我评论了' Image'代码,因为它不是问题。
随意编辑。
答案 0 :(得分:3)
除非在此处编写代码时输入错误,否则方法名称错误:
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
//g2d.drawImage(tank, 10, 10, null);
g2d.drawRect(50, 50, 10, 10);
}
注意:如另一个答案所述,使用@Override注释会立即注意到这个错误。
答案 1 :(得分:2)
这是一个错字。
public void painComponent(Graphics g){
始终使用@Override
注释来避免这些错误。