Java刽子手游戏重绘()无法正常工作

Geo*_*off 5 java eclipse repaint

我一直在做一个刽子手游戏来自学Java.我已进入框架的主体.

this.add(new PaintSurface(), BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)

我有:

private class PaintSurface extends JComponent {
    Shape found = null;

    public PaintSurface(){
        JOptionPane.showMessageDialog(null, "Repainting");
        Shape s;
        msgbox("LL: " + intLivesLost);
        switch(intLivesLost){
        //draw the Hanged man
        case 10:
            //Face + KILL
        case 9:
            //2nd Arm
        case 8:
            //1st Arm
        case 7:
            //2nd Leg
        case 6:
            //1st Leg
        case 5:
            //Body
        case 4:
            //Head
            shapes.add(s);
        case 3:
            //Horizontal Bar
            s = new Line2D.Float(100, 450, 250, 450);
            shapes.add(s);
            //Rope
            s = new Line2D.Float(250, 450, 250, 500);
            shapes.add(s);
        case 2:
            //Vertical Bar
            s = new Line2D.Float(100, 450, 100, 670);
            shapes.add(s);
        case 1:
            //Stand
            s = new Line2D.Float(40, 670, 460, 670);
            shapes.add(s);
            break;
        default:
            break;          
        }
    }

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D)g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setStroke(new BasicStroke(4));
        g2.setColor(Color.BLACK);

        for (Shape count : shapes){
            g2.draw(count);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用:

repaint();
Run Code Online (Sandbox Code Playgroud)

...每次更新框架时,整个项目,新信猜测,错误猜测,新游戏.

当应用程序首次运行JOptionPane.showMessageDialog(null,"重绘")时; 弹出,所以我知道它被称为.在那之后,"重新绘制"弹出不再出现,所以我知道重绘(); 电话什么也没做.我知道代码正在进入repaint(); 调用,因为我在它们之前和之后放置了一个JOptionPane.showMessageDialog.

我试过没有运气:

移除所有();
重新验证();
的getContentPane()重绘();

任何提示和技巧都将非常感激.

编辑:我按照你的推荐尝试了它,把代码放在"绘画"中,认为这是我以前的方式,它仍然无法正常工作.谢谢.

Geo*_*off 0

我已经解决了这个问题,将绘图放在单独的面板上,一切正常。谢谢您的帮助。