从arraylist绘制形状

时间:2014-06-13 19:26:27

标签: java swing graphics paint mouselistener

我试图用我的鼠标画出我设定的某种形状。我定义了一些形状,它们可以扩展形状并绘制圆形和东西。但是当我点击面板时,油漆似乎没有在白色的jpanel上放任何东西。调试器告诉我虽然保存了形状。

public void mouseClicked(MouseEvent e) {
    currentX = e.getX();

    currentY = e.getY();

    Shape newShape = owner.currentBrush.clone();
    picture.add(newShape); 
    repaint();
}
public void paint(Graphics g){

        super.paint(g);
        for( int i = 0; i < myShapes.size(); i++ ){
            picture.get(i).draw(g); 
        }

    }

public void draw(Graphics g){
        Graphics g2d = (Graphics2D) g;

        g2d.setColor(Color.BLUE);

        g2d.fillOval(getX(), getY(), radius, radius);

        g.drawOval(getX(), getY(), radius, radius);
    }

1 个答案:

答案 0 :(得分:2)

而不是覆盖paint()方法使用paintComponent()的{​​{1}}方法。

JPanel

了解更多