我试图创建一个项目,其中我有一个构造函数,用于构造具有x,y,width,height的圆,然后使用Jpanel绘制它们。 不幸的是,我没有运气尝试自己或找到任何体面的资源......
有人可以帮帮我吗?谢谢.. 我正在尝试这样的事情
public Circle(int x , int y, int w, int h) {
g.drawOval(x,y,w,h);
}
另外,我想知道是否有比Jpanel更好的选择? 我正在构建一个可以生成两个圆并移动的应用程序,检测它们何时相交并标记相交的区域。
答案 0 :(得分:3)
您似乎正在尝试使用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());
}
答案 1 :(得分:0)
一旦你学习它,构造函数就非常简单。请务必将类构造函数命名为与您的类相同的名称。通常,您希望创建私有变量以将构造函数的输入分配给。在这种情况下,我们创建了私有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);
代码创建一个名为" objectName"的新对象。来自构造函数" className" x为100,y为200,w,300和h为400.要调用绘图函数,只需键入:
objectName.draw(g2); //Where g2 is some Graphics2D object