>我正在尝试创建一个项目,其中我有一个构造函数,该构造函数构造具有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