-1

我是 VBA 的老粉丝,刚刚开始学习 Java。一切都很顺利,直到我到达Pointand 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 行.....

在 new 下有一个插入符号,然后是同一行的一系列其他错误描述。

但是,如果我用实际值 25、50 代替 originOne(第 9 行),就可以了。

其他信息:

我所有的源文件和类文件都在目录中 C:\Java\。所有其他文件和子文件夹 ( jdk1.7.0_13, JRE7) 都在C:\Program Files\Java.

4

5 回答 5

2

Rectangle表示一个二维盒子,它需要 4 个参数,x, y,widthheight

有可用的简写构造函数,带有 1 到 2 个参数,但基本要求是上面提到的 4 个参数。

查看JavaDocs以获取更多信息

你可以new Rectangle(originOne, new Dimension(100, 200))改用...

于 2013-02-27T00:53:54.013 回答
2

如果您查看java 文档

您将看到没有接受 Point 和 2 个整数的 rectangle 构造函数。

虽然有一个构造函数接受 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);

取决于哪一个更适合您的目的。

于 2013-02-27T00:56:17.727 回答
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());
    }
}
于 2013-02-27T00:55:01.160 回答
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 约定。)

于 2013-02-27T00:57:01.467 回答
0

查看Rectangle 类的 Javadocs。你会看到没有构造函数需要 aPoint和 two ints。您将需要找到一个不同的构造函数来满足您的需求。

于 2013-02-27T00:54:39.367 回答