麻烦绘制嵌套圈子

时间:2013-12-12 20:25:08

标签: java graphics geometry nested awt

我的程序会询问用户他们想要绘制多少个圆圈,并且应该根据用户输入绘制N个嵌套圆圈。到目前为止,我的代码如下:

import javax.swing.*;
import java.awt.*;
public class DrawCircles extends JFrame {

DrawCircles(){
    add(new Circle());
}

public static void main(String[] args) {
    String number = JOptionPane.showInputDialog(null, "Please enter the number of circles you wish to display");
    int circles = Integer.parseInt(number);
    DrawCircles d = new DrawCircles();
    d.setTitle("Nested Circles");
    d.setSize(500, 500);
    d.setVisible(true);
    d.setLocation(200,200);

}//end main method




}//end class

class Circle extends JPanel{
public void paint(Graphics g){
    g.drawOval(135, 125, 200, 200);
}//end paint()
}//end class

我不知道如何从main方法获取用户输入并在for循环中使用它来绘制N个圆圈。此外,我必须相应地调整我的JFrame大小,以适应所有它们的圆圈数量,我也不知道如何做到这一点。提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先不要覆盖paint,而是使用paintComponent,并确保在执行时调用super.paintComponent。有关详细信息,请查看Performing custom painting

只需将circles值作为参数传递给Circle类的构造函数和/或提供一个更改值的setter