为 JPanel 制作构造函数以创建圆圈



>我正在尝试创建一个项目,其中我有一个构造函数,该构造函数构造具有x,y,宽度,高度的圆,然后使用Jpanel绘制它们。不幸的是,我没有运气尝试自己或找到任何像样的资源......

有人可以帮助我吗?谢谢。。我正在尝试做这样的事情

public Circle(int x , int y, int w, int h) {
    g.drawOval(x,y,w,h);
}

另外,我想知道是否有比 Jpanel 更好的替代品?我希望构建一个可以生成两个圆并移动的应用程序,检测它们何时相交并标记相交区域。

看起来您正在尝试使用 Graphics 类进行绘制。

你会想要这样的东西:

public class Circle {
public int x,y,w,h;
public Circle(int xx,yy,ww,hh) {
    x = xx;
    y = yy;
    w = ww;
    h = hh;
}
public int getX() {
    return x;
}
public int getY() {
    return y;
}
public int getW() {
    return w;
}
public int getH() {
    return h;
}
}
class MainClass {
public circle = new Circle(50,50,50,50);
@Override
public void paintComponent(Graphics g) {
    g.drawOval(circle.getX(),circle.getY(),circle.getW(),circle.getH());
}

一旦你学会了构造函数,它就非常简单了。请确保将类构造函数命名为与类相同的名称。通常,您希望创建私有变量来分配构造函数的输入。在本例中,我们创建了私有 int x、y、w 和 h,以在构造函数中分配输入的 int x、int y、int w 和 int h。绘图时,我们采用 Graphics2D 对象来绘制我们想要的形状、点等。

public class className{
    //Creating object properties
    private int x, y, w, h;  
    //Class Constructor
    public className(int x, int y, int w, int h){ 
        this.x = x;
        this.y = y;
        this.w = w;
        this.h = h;
    }
    //For drawing, you want to take in a Graphics2D Object (g2)
    public void draw(Graphics2D g2){
        g2.drawOval(x, y, w, h);
    }
}

在主类或 PaintComponent 所在的任何位置,要使用构造函数,请键入:

className objectName = new className(100, 200, 300, 400); 

该代码从构造函数"className"创建一个名称为"objectName"的新对象,其 x 为 100,y 为 200,w,300,h 为 400。要调用绘制函数,只需键入:

objectName.draw(g2); //Where g2 is some Graphics2D object