-1

私は古い 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 行目.....

new の下にキャレットがあり、その後に同じ行の他のエラーの説明が多数続きます。

しかし、originOne に実際の値 25、50 を代入すれば (9 行目)、問題ありません。

他の情報:

すべてのソースとクラス ファイルは directory にあり C:\Java\ます。他のすべてのファイルとサブフォルダー ( jdk1.7.0_13JRE7) は にありC:\Program Files\Javaます。

4

5 に答える 5

2

Javaのドキュメントを見ると

Point と 2 つの整数を受け取る四角形のコンストラクターがないことがわかります。

ただし、4 つの整数を受け取るコンストラクターがあり、1 つのポイントと 1 つの次元を受け取るコンストラクターもあります。

そのため、次のことを選択できます。

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 に答える
2

Rectanglexは 2 次元のボックスを表し、 、ywidthおよびの 4 つのパラメータが必要です。height

1 ~ 2 個のパラメーターを使用する簡略化されたコンストラクターが利用可能ですが、基本的な要件は上記の 4 つのパラメーターです。

詳細については、JavaDocsを参照してください。

代わりに使用できますnew Rectangle(originOne, new Dimension(100, 200))...

于 2013-02-27T00:53:54.013 に答える
1

Rectangle3 つの引数を取ることはできません。コードを次のように変更できます。

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

...それを行う1つの方法です。

クラスの javadoc ( http://docs.oracle.com/javase/6/docs/api/java/awt/Rectangle.html ) を参照して、許可されているクラスを作成するすべての方法を確認してください。

(注: Java の規則であるため、変数を小文字にしました。)

于 2013-02-27T00:57:01.467 に答える
0

Rectangle クラスの Javadoc を確認してください。Pointaと twoを取るコンストラクターがないことがわかりますints。ニーズに合った、使用する別のコンストラクターを見つける必要があります。

于 2013-02-27T00:54:39.367 に答える