ok jetzt habe ich versucht die methode so umzuschreiben, dass die punkte in einen vector gespeichert werden und dieser vector dann zurückgegeben wird -> das macht der code auch nur wird in diesem vector nur der letzte punkt gespeichert
jetzt meine frage wo liegt der fehler?
Code:
import eprog.*;
import java.util.*;
import java.awt.geom.*;
public class Konvneck extends EprogIO
{
public static void main(String[] args)
{
point();
}
/////////////////////////
// Methode zum Einlesen//
/////////////////////////
private static Vector einlesen()
{
float xKoord, yKoord;
String input = ""; // dieser String enthält die Eingabe
int counter = 0; // zum Zählen der Koordinatenpaare
Vector punkte = null;
Point2D.Float punkt = null;
do
{
input = readWord();
int index1 = input.indexOf('(');
int index2 = input.indexOf(')');
if ( (index1 != -1) && (index2 > index1))
{
String teil = input.substring(index1+1, index2);
try
{
xKoord=Float.parseFloat(teil.substring(0, teil.indexOf(',')));
yKoord=Float.parseFloat(teil.substring(teil.indexOf(',')+1, teil.length()));
if ( (xKoord < -100) || (xKoord > 100) || (yKoord < -100) || (yKoord > 100) )
{
println ("FALSCHE EINGABE");
}
punkt = new Point2D.Float(xKoord, yKoord);
println (xKoord);
println (yKoord);
println (punkt);
}
catch (NumberFormatException e)
{
throw new IllegalArgumentException("FALSCHE EINGABE");
}
punkte = new Vector();
punkte.add (punkt);
counter++;
}
} while (!(input.endsWith("=")));
println (counter);
if ( (counter < 3) || (counter > 15) )
{
println ("FALSCHE EINGABE");
}
return punkte;
}
public static void point()
{
Vector punkte = einlesen();
println (punkte.size());
Enumeration enum = punkte.elements(); // Enumeration auf einzelne Elemente
while(enum.hasMoreElements())
{
println (enum.nextElement().toString()+" ");
}
}
}
mfg poison