Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe das Problem, das ich einfach mein xMin xMax, yMin, yMax nicht weiterbenutzen kann.
Die Werte sollen unter anderem die Start und Endwerte meines KoordinatenSystems werden.
Code:
public void initKoordinatenSys()
{
BufferedReader br;
ArrayList<Double> x = new ArrayList<Double>();
ArrayList<Double> y = new ArrayList<Double>();
String temp = null;
String[] ar = null;
double xMax = Double.MIN_VALUE;
double xMin = Double.MAX_VALUE;
double yMax = Double.MIN_VALUE;
double yMin = Double.MAX_VALUE;
try
{
br = new BufferedReader(
new FileReader("ausgabe.dat"));
while ((temp = br.readLine()) != null)
{
ar = temp.split(" ");
x.add(Double.parseDouble(ar[0]));
y.add(Double.parseDouble(ar[1]));
}
}
catch (IOException e)
{
System.out.println("Fehler beim Erstellen der Datei");
}
for (int i = 0; i < x.size(); i++)
{
if(x.get(i) > xMax) {xMax = x.get(i);}
if(x.get(i) < xMin) {xMin = x.get(i);}
if(y.get(i) > yMax) {yMax = y.get(i);}
if(y.get(i) < yMin) {yMin = y.get(i);}
}
xStep = (xMax-xMin)/10; // zehn teilstriche
yStep = (yMax-yMin)/10; // zehn teilstriche
}
public void koordinatenSystem(Graphics g)
{
g.setColor(Color.black);
g.drawLine(calcPosX(xMin),calcPosY(0),calcPosX(xMax),calcPosY(0));//x achse
g.drawLine(calcPosX(0),calcPosY(yMin),calcPosX(0),calcPosY(yMax));//y achse
}
hier in koordinatenSystem sollen sie unter anderem in Anwendung kommen.
java.awt.geom.Point2D.Double
ein Punkt mit doubles
das Problem ist, dass nach dem Ende der Funktion
der Garbabe Collector alle Lokalen Variablen
löscht.
Bei dir alles!!
Somit ist es nicht mehr möglich auf diese Variablen zuzugreifen
Es müssen GLOBALE variablen eingeführ werden.
Auch das Koordinaten sys ist weg!
public class Point{
private double x; //dlobale Variable
//getter für globale Vars
public double getX(){
return x;
}
public void doStuff(){
int i = 0; //lokale Variable
}//und schon gelöscht
}
x ist auch nach dem aufruf der Methode verfügbar. Solange die Klasse existert ( als Objekt)
Ist doch ganz einfach. Alle Variablen die nicht aus der Methode raus übergeben werden, sind nach dem Ende der Methode (Das letzte } ) nicht mehr ansprechbar.
dh
das alles:
Code:
BufferedReader br;
ArrayList<Double> x = new ArrayList<Double>();
ArrayList<Double> y = new ArrayList<Double>();
String temp = null;
String[] ar = null;
double xMax = Double.MIN_VALUE;
double xMin = Double.MAX_VALUE;
double yMax = Double.MIN_VALUE;
double yMin = Double.MAX_VALUE;
existiert nur in der Methode "initKoordinatenSys". Sobald diese beendet ist, sind die Variablen verloren. Du musst Variablen die für die ganze Klasse nutzbar sein sollen, einfach ausserhalb einer MEthode deklarieren.