1

こんにちは、ポリゴンを描画しようとしているときに問題が発生しました。まずaddPoint(int x, int y)メソッドを使って座標を一つずつ与えてポリゴンを描いてみると問題なく綺麗にポリゴンが描けました。ただし、座標を配列 (x 座標と y 座標の整数配列) として指定すると、コンパイラでエラーが発生します。ご覧のとおり、これは動作するコードです。

@Override
public void paint(Graphics g) {

    Graphics2D g2 = (Graphics2D) g;

    Polygon poly = new Polygon();

    poly.addPoint(150, 150);
    poly.addPoint(250, 100);
    poly.addPoint(325, 125);
    poly.addPoint(375, 225);
    poly.addPoint(450, 250);
    poly.addPoint(275, 375);
    poly.addPoint(100, 300);

    g2.drawPolygon(poly);

}

しかし、配列 (ポリゴンの Graphics クラスで定義されている) を使用するxpointsと、ypoints正しく機能しません。

@Override
public void paint(Graphics g) {

    Graphics2D g2 = (Graphics2D) g;

    Polygon poly = new Polygon();

    poly.xpoints[0]=150;
    poly.xpoints[1]=250;
    poly.xpoints[2]=325;
    poly.xpoints[3]=375;
    poly.xpoints[4]=450;
    poly.xpoints[5]=275;
    poly.xpoints[6]=100;      

    poly.ypoints[0]=150;
    poly.ypoints[1]=100;
    poly.ypoints[2]=125;
    poly.ypoints[3]=225;
    poly.ypoints[4]=250;
    poly.ypoints[5]=375;
    poly.ypoints[6]=300;

    g2.drawPolygon(poly.xpoints, poly.ypoints, 7);

}

とにかく助けてくれてありがとう。

4

3 に答える 3

2

あなたのコメントから:

各配列に7つの整数要素があるため、7であるべきだと思いましたか?

最初initialize your arrayに、次にpopulate the array with elements.

    poly.xpoints = new int[7]; // initializing the array
    poly.xpoints[0]=150;       //populating the array with elements.
    poly.xpoints[1]=250;
    poly.xpoints[2]=325;
    poly.xpoints[3]=375;
    poly.xpoints[4]=450;
    poly.xpoints[5]=275;
    poly.xpoints[6]=100;  

同じことがYPointsにも当てはまります。

動的配列を探している場合は、ArrayList などの Java コレクション フレームワークのList実装クラスの 1 つを使用します。

List<Integer> xPoints = new ArrayList<Integer>();
xPoints.add(150);
xPoints.add(250);
...
于 2013-03-01T21:47:10.730 に答える
2

事前に構築された配列を使用して Polygon を初期化してみてください。事前に配列を作成し、Polygon のコンストラクターに渡すことができます。

public Polygon(int[] xpoints, int[] ypoints, int npoints)
于 2013-03-01T21:48:00.850 に答える
1

配列のサイズを知っていますか? それも初期化されていますか?

クイックGoogleはこれを見つけました:

http://docs.oracle.com/javase/7/docs/api/java/awt/Polygon.html#xpoints http://www.java2s.com/Code/JavaAPI/java.awt/GraphicsdrawPolygonintxPointsintyPointsintnPoints.htm

于 2013-03-01T21:47:16.723 に答える