我是VBA的老粉丝,刚刚开始学习Java。在我到达Point
和Rectangle
之前,一切都很顺利。我的代码如下:
// Point demo
import java.awt.Point;
import java.awt.Rectangle;
class PointDemo {
public static void main(String[] args) {
Point originOne = new Point(25,50);
Rectangle R1 = new Rectangle(originOne, 100, 200); // Line 9
System.out.println("OriginOne X = " + originOne.getLocation());
}
}
如果我省略第9行,则没有错误。但是,一旦插入第9行并重新编译,我会收到以下错误:
...错误:找不到适合Rectangle(Point,int,int)的构造函数 Rectangle R1 = new Rectangle(originOne,100,200); //第9行......
使用新的插入符号,然后是同一行的一系列其他错误描述。
但如果我用origOne(第9行)替换实际值25,50,那就没关系。
其他信息:
我的所有源文件和类文件都在C:\Java\
目录中。
所有其他文件和子文件夹(jdk1.7.0_13
,JRE7
)都位于C:\Program Files\Java
。
答案 0 :(得分:2)
Rectangle
代表一个二维框,它需要4个参数,x
,y
,width
和height
有可用的短手构造器,需要1到2个参数,但基本要求是上面提到的4个参数。
请查看JavaDocs以获取更多信息
您可以使用new Rectangle(originOne, new Dimension(100, 200))
代替......
答案 1 :(得分:2)
您将看到没有矩形的构造函数,它接受Point和2个整数。
虽然有一个构造函数接受4个整数,但也有一个接受一个点和一个维度。
所以你可以选择做:
Rectangle myRectangle = new Rectangle(originOne.X, originOne.Y, 100, 200);
或
import java.awt.Dimension;
Dimension myDimension = new Dimension(100,200);
Rectangle myRectangle = new Rectangle(originOne, myDimension);
取决于哪一个更符合您的目的。
答案 2 :(得分:1)
Rectangle
不能接受3个参数。您可以将代码更改为以下内容:
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Dimension;
class PointDemo {
public static void main(String[] args) {
Point originOne = new Point(25,50);
Rectangle R1 = new Rectangle(originOne, new Dimension(100, 200)); // No error
System.out.println("OriginOne X = " + originOne.getLocation());
}
}
答案 3 :(得分:1)
Rectangle
类有许多构造函数,但没有一个具有点,宽度和高度的构造函数。
Point originOne = new Point(25,50);
Rectangle r1 = new Rectangle(100, 200); // Line 9
r1.setLocation(originOne);
......是一种方法。
请参阅该课程的javadoc(http://docs.oracle.com/javase/6/docs/api/java/awt/Rectangle.html),了解制作一个允许的方法的所有方法。
(注意:我的变量较低,因为这是java惯例。)
答案 4 :(得分:0)
结帐the Javadocs for the Rectangle class。您将看到没有构造函数需要Point
和两个ints
。您需要找到一个符合您需求的不同构造函数。