我想做一个简单的乒乓游戏,以学习Java的JFrame
,JPanel
等。我见过有类似问题的人,但似乎没有解决方案,当我运行代码时,我所看到的是一个空屏幕,在这一点上,甚至一个简单的条件似乎都不起作用。此处添加代码:
import java.awt.*;
import javax.swing.*;
public class Pong extends JFrame {
int ancho = 800;
int alto = 800;
Point barra1 = new Point((int) (ancho*0.05), (int) alto/2);
Point barra2 = new Point((int) (ancho*0.95), (int) alto/2);
boolean gameover = true;
Pintar pintar;
public Pong(){
setTitle("Pong");
Pintar elementos = new Pintar();
this.getContentPane().add(elementos);
setSize(ancho,alto);
this.setBackground(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JFrame.setDefaultLookAndFeelDecorated(false);
setUndecorated(true);
this.setLocationRelativeTo(null);
setVisible(true);
}
public class Pintar extends JPanel{
public void pintar(Graphics g){
super.paintComponent(g);
if(gameover == true){
g.setColor(Color.BLACK);
}
else{
g.setColor(Color.WHITE);
}
g.fillRect(0, 0, ancho, alto);
}
}
public static void main(String[] args) {
Pong pantalla1 = new Pong();
}
}
我尝试的任何东西似乎都没有结果,绘画设置现在真的很简单,如果游戏结束是假的,它会在整个屏幕上画一个白色的正方形,否则,它会把它画成黑色。
所以我认为问题是这些图像进入框架。
你的pintar
方法不应该试图画东西。
使用专用的paintComponent
方法:
@Override
public void paintComponent(final Graphics g) {
super.paintComponent(g);
if (gameover == true) {
g.setColor(Color.BLACK);
} else {
g.setColor(Color.WHITE);
}
g.fillRect(0, 0, ancho, alto);
}