绘制了背景颜色/图像,但形状不显示

时间:2019-05-25 21:44:24

标签: java swing jframe jpanel paintcomponent

我只是试图在我的JPanel上绘制一个对象,但是它不会出现。正在调用用于创建表示对象的Rectangle的方法,但是该对象将不会出现在屏幕上。

这是我的主类,它设置JFrameJPanel并具有用于绘制所有内容的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,但是我不太确定自己做错了什么。

0 个答案:

没有答案