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

我是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 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);