Java 没有为矩形()找到合适的构造函数
我是VBA的老粉丝,刚刚开始学习Java。一切都很顺利,直到我到达Java 没有为矩形()找到合适的构造函数,java,Java,我是VBA的老粉丝,刚刚开始学习Java。一切都很顺利,直到我到达点和矩形。我的代码如下: // 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
点
和矩形
。我的代码如下:
// 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行并重新编译,就会出现以下错误:
…错误:没有为矩形(点、int、int)找到合适的构造函数
矩形R1=新矩形(原始,100200);//第9行
在new下加上插入符号,然后对同一行进行大量其他错误描述
但是如果我用实际值25,50来代替originOne(第9行),就可以了
其他资料:
我所有的源代码和类文件都在目录C:\Java\
中。
所有其他文件和子文件夹(
jdk1.7.0_13
,JRE7
)都位于C:\Program files\Java
矩形
表示二维框,它需要4个参数,x
,y
,宽度
和高度
可以使用1到2个参数的速记构造函数,但基本要求是上述4个参数
有关更多信息,请参阅
您可以使用
新矩形(原始,新尺寸(100200))
代替…签出。您将看到,没有一个构造函数接受一个点和两个整数。您将需要找到一个不同的构造函数来使用,它将适合您的需要。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());
}
}
如果你看
您将看到,对于接受一个点和两个整数的矩形,没有构造函数
有一个构造函数可以接受4个整数,还有一个构造函数可以接受一个点和一个维度
因此,您可以选择执行以下操作:
Rectangle myRectangle = new Rectangle(originOne.X, originOne.Y, 100, 200);
或
取决于哪个更适合您的目的。矩形类有许多构造函数,但没有一个具有点、宽度和高度
Point originOne = new Point(25,50);
Rectangle r1 = new Rectangle(100, 200); // Line 9
r1.setLocation(originOne);
。。。这是一种方法
请参阅javadoc()以了解该类的所有方法
(注意:我已经降低了变量的大小写,因为这是java约定。)吹毛求疵,但最好保持并演示正确的编码约定,如《如何结交朋友和影响他人》中所述;)我不知道你这是什么意思?r1
和d1
以及Java编码转换中不推荐的变量约定,r1
和d1
更为正确(我知道,从OP中复制并通过,但我们需要尽可能保持高的标准;))鉴于Rectangle
有7个构造函数,最好说“将您的代码更改为类似的内容”,以突出显示OP;)可用的多个可能选项我知道,对于正确的编码约定和突出显示多个选项来说,这是一个挑剔的+1
Point originOne = new Point(25,50);
Rectangle r1 = new Rectangle(100, 200); // Line 9
r1.setLocation(originOne);