我只是试图在我的JPanel
上绘制一个对象,但是它不会出现。正在调用用于创建表示对象的Rectangle的方法,但是该对象将不会出现在屏幕上。
这是我的主类,它设置JFrame
和JPanel
并具有用于绘制所有内容的paintComponent
方法。
这是我的主班
public class BrickBreaker extends JPanel
{
private static int WIDTH = 600;
private static int HEIGHT = 400;
private Paddle paddle = new Paddle(WIDTH/2 - 25, HEIGHT - 25);
public BrickBreaker()
{
JFrame frame = new JFrame();
Dimension size = new Dimension(WIDTH, HEIGHT);
frame.setSize(size);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
setBackground(Color.BLACK);
frame.add(this, BorderLayout.CENTER);
frame.addKeyListener(paddle);
}
public static void main(String[] args)
{
BrickBreaker game = new BrickBreaker();
}
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
paddle.draw(g);
}
我还有一个Paddle
类,用于创建一个桨形对象,并且它具有一个draw
方法,我正在尝试尝试绘制一个基本的矩形
public class Paddle
{
private int x, y;
private Rectangle paddle;
public Paddle(int x, int y)
{
this.x = x;
this.y = y;
paddle = new Rectangle(x, y, 50, 10);
}
public void draw(Graphics g)
{
g.setColor(Color.WHITE);
g.drawRect(paddle.x, paddle.y, 75, 10);
g.fillRect(paddle.x, paddle.y, 75, 10);
}
}
我已经完成了一些基本测试,例如将paddle.x, paddle.y
更改为硬编码坐标,但是矩形不会显示
我还在主类的BufferedImage
方法中添加了一个paintComponent
,并绘制到了屏幕上。我还添加了检查以确保正在调用draw
方法,并且确实如此。
我假设我错误地设置了JPanel
,但是我不太确定自己做错了什么。