Java actionListener中paintComponent的填充和正确使用

Java actionListener中paintComponent的填充和正确使用,java,jframe,paintcomponent,jcomponent,Java,Jframe,Paintcomponent,Jcomponent,我想在paintComponent外部使用fillOval;例如,actionListener中的Fillova: 我不确定paintComponentg2是否正确 在PaintComponent2中,我不确定是否正确 直接调用paintComponent是不正确的。此方法由Swing paint堆栈负责调用此方法。改用重绘 public void mouseReleased(MouseEvent e) { int r = Math.max((maxx - minx) / 2, (ma

我想在paintComponent外部使用fillOval;例如,actionListener中的Fillova:

我不确定paintComponentg2是否正确

在PaintComponent2中,我不确定是否正确

直接调用paintComponent是不正确的。此方法由Swing paint堆栈负责调用此方法。改用重绘

public void mouseReleased(MouseEvent e) {

    int r = Math.max((maxx - minx) / 2, (maxy - miny) / 2);
    int nr = (int) Math.sqrt(2 * Math.pow(r, 2));
    int newx = minx - (nr - r);
    int newy = miny - (nr - r);

    iterator.add(new Object[] { newx, newy, nr, g2.getColor() });
    // remember
    paintComponent(g2);

}
repaint();