PDA

View Full Version : java problema disegna poligoni


liulca
30-11-2012, 19:48
salve a tutti mi servirebbe un aiuto devo disegnare 4 diversi poligoni ho scritto il codice seguenta ma mi disegna un solo poligono è possibile trovare una soluzione vi ringrazio anticipatamente.

import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Set;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Polygons1 extends JPanel {

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);


Set<POINTS> POLYGON = new LinkedHashSet<POINTS>();


//polygon 1 point 3
POLYGON.add(new POINTS(1, 50, 20));
POLYGON.add(new POINTS(1, 70, 30));
POLYGON.add(new POINTS(1, 50, 40));


//polygon 2 point 4
POLYGON.add(new POINTS(2, 100, 20));
POLYGON.add(new POINTS(2, 130, 30));
POLYGON.add(new POINTS(2, 100, 40));
POLYGON.add(new POINTS(2, 120, 30));


//polygon 3 point 6
POLYGON.add(new POINTS(3, 150, 20));
POLYGON.add(new POINTS(3, 180, 30));
POLYGON.add(new POINTS(3, 150, 40));
POLYGON.add(new POINTS(3, 130, 20));
POLYGON.add(new POINTS(3, 180, 30));
POLYGON.add(new POINTS(3, 150, 50));


//polygon 4 point 12
POLYGON.add(new POINTS(4, 150, 20));
POLYGON.add(new POINTS(4, 180, 30));
POLYGON.add(new POINTS(4, 150, 40));
POLYGON.add(new POINTS(4, 130, 20));
POLYGON.add(new POINTS(4, 180, 30));
POLYGON.add(new POINTS(4, 150, 50));
POLYGON.add(new POINTS(4, 150, 20));
POLYGON.add(new POINTS(4, 180, 30));
POLYGON.add(new POINTS(4, 130, 60));
POLYGON.add(new POINTS(4, 140, 50));
POLYGON.add(new POINTS(4, 140, 30));
POLYGON.add(new POINTS(4, 120, 30));







int n = POLYGON.size() ;
int[] x = new int[n];
int[] y = new int[n];
int counter = 0;

for (POINTS pnt : POLYGON) {
x[counter] = pnt.getX();
y[counter++] = pnt.getY();

System.out.println(x);


Polygon[] polygons = new Polygon[4];
for (int i = 0; i < polygons.length; i++) {
polygons[i] = new Polygon();
polygons[pnt.getID()-1] = new Polygon(x, y, x.length);
g.setColor(Color.RED);
g.drawPolygon(polygons[i]);
}} }





public class POINTS {

private int ID;
private int X;
private int Y;

public POINTS(
int ID, int X, int Y) {
this.ID = ID;
this.X = X;
this.Y = Y;
}

public int getX() {
return X;
}

public int getY() {
return Y;
}

public int getID() {
return ID;
}
}

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("Polygons");
frame.setSize(550, 550);
frame.addWindowListener(new WindowAdapter() {

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new Polygons1());

frame.show();
}
}