1

ですから、私の課題の一部は、さまざまなボタンにリンクされる三角形のクラスを作成することです...しかし、Eclipseで1つを作成する方法がわかりません。具体的な指示はこれを言います:

三角形のクラスを作成する

  1. データフィールド:Point[]座標;
  2. コンストラクター
  3. スーパークラスで定義されたすべての抽象メソッドを実装する
  4. 各データフィールドのゲッターとセッター
  5. public void paint(Graphics arg0)メソッドをオーバーライドします

三角形のクラスを除いて、他のクラスですべてを設定しています。ポイントの配列を使用して三角形を作成する方法について混乱しています...ポイントx、yを使用する必要がありますか、それともその1つの配列変数座標に3つの(x、y)座標ペアを格納する必要がありますか?drawPolygonを使用して作成することを想像しています...しかし、私にはわかりません。任意のヒント?

4

3 に答える 3

1

引数としてsのg.drawPolygon配列をとるを使用します。Point

于 2012-10-28T05:05:58.787 に答える
1

Triangleのクラス例を次に示します。

public class Triangle {

  private Point[] coords;

  // Null object constructor
  public Triangle() {
    this.coords = null;
  }

  // Constructor with point array
  public Triangle(Point[] coords) {
    this.coords = coords;
  }

  // Constructor with multiple points
  public Triangle(Point a, Point b, Point c) {
    this.coords = new Point[3];
    coords[0] = a;
    coords[1] = b;
    coords[2] = c;
  }

  // The actual paint method
  public void paint(Graphics arg0) {
    // Setup local variables to hold the coordinates
    int[] x = new int[3];
    int[] y = new int[3];
    // Loop through our points
    for (int i = 0; i < coords.length; i++) {
        Point point = coords[i];
        // Parse out the coordinates as integers and store to our local variables
        x[i] = Double.valueOf(point.getX()).intValue();
        y[i] = Double.valueOf(point.getY()).intValue();
    }
    // Actually commit to our polygon
    arg0.drawPolygon(x, y, 3);
  }
}

このクラスが正確に何を拡張するのかわからないため、オーバーライドなどとしてマークされているものはなく、セッターとアクセサーがありませんが、機能させることができるはずです。

于 2012-10-28T05:20:41.967 に答える
1

似たようなことをしました。3辺のポリゴンを描きました。役立つかもしれません..

for (int i = 0; i < 3; i++){
  polygon1.addPoint(
    (int) (40 + 50 * Math.cos(i * 2 * Math.PI / 3)),
    (int) (150 + 50 * Math.sin(i * 2 * Math.PI / 3))
  );
}
g.drawPolygon(polygon1);
于 2012-10-28T05:20:46.303 に答える