JPanel上的paintComponent无法正常工作

时间:2013-06-10 13:12:23

标签: java swing jpanel paintcomponent

我现在花了将近2个小时,但我无法让它发挥作用。 我只是想在 JPanel 上绘制图像。

我想在竞技场JPanel上绘制imageChaser图像。 但它没有显示。 我做错了什么?

继承我的代码:

public class GuiGameBoard extends JPanel {

//import stuff


private JPanel arena;

BufferedImage imageChaser;
BufferedImage imageChaserSelected;
BufferedImage imageTarget;

public GuiGameBoard() {

    this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));

    arena = new JPanel();
    arena.setPreferredSize(new Dimension(500, 500));
    arena.setBackground(Color.BLACK);


    this.add(arena);

    try 
    {
        File inputChaser = new File("resources\\chaser.png");
        imageChaser = ImageIO.read(inputChaser);

        File inputChaserSelected = new File("resources\\chaser_selected.png");
        imageChaserSelected = ImageIO.read(inputChaserSelected);

        File inputTarget = new File("resources\\target.png");
        imageTarget = ImageIO.read(inputTarget);

    } 
    catch (IOException ie) 
    {
        System.out.println("Error:"+ie.getMessage());
    }

}

public void paintComponent(Graphics g){

    super.paintComponent(g);
    g.drawImage(imageChaser, 0, 0, null);
}

}

2 个答案:

答案 0 :(得分:3)

我认为问题是,通过将JPanel arena添加到您的GuiGameBoard类(已经是JPanel)来隐藏您的图片。

但如果没有SSCCE,就不可能给出足够的答案......

答案 1 :(得分:1)

我想你忘记了'顶级容器',例如的JFrame。

看看这个例子 example code

了解更多信息click here