| 

.NET C# Java Javascript Exception

2
also ich will mir meine wertetabelle für die übergebene funktion ausgeben lassen, solange ich es in der Console ausgegeben habe, war es kein problem!
System.out.println("f(" + x + ")=" + f.f(x));

Jezt wollte ich aber alles in meinem Funktionsplotter haben (in meiner anwendungsoberfläche)....das heißt wenn ich ein Knopf drücke, wird die methode printWertetabelle() aufgerufen und sollte nun eigentlich alle werte einmal ausgeben!
So irgendwie kommt aber immer nur das letzte( f(9)=81 ) und nicht alle, also so ob es jedes mal überschrieben wird.!WIESO?
/**
* Gibt die Wertetabelle zurück für das ganze x Intervall[-9..9]
*
* @param stringFunction
* Funktion für die, die Wertetabelle berechnet werden soll
* @return
*/
public void printWertetabelle(String stringFunction) {
MathEngine mathEngine = new MathEngine();
IFunction f = mathEngine.eval(stringFunction);
// TextLabel auf shell erstellen für die Wertetabelle
Label label = new Label(shell, SWT.LEFT_TO_RIGHT | SWT.WRAP | SWT.BORDER);
label.setBounds(550, 250, 300, 120);
for (int x = -9; x <= 9; x++) {
label.setText("f(" + x + ")=" + f.f(x));
}
}
News:
24.04.2012
tanzverfuehrung 147 8
2 Antworten
1
Auch wenn ich ?Java nicht kenne, aber ...
label.setText("f(" + x + ")=" + f.f(x));

Du hast EIN Control für die Ausgabe => label und da wird mit jedem Schleifendurchlauf der Text überschrieben.

Gibt es keine Liste, zu der Du immer neue Eintäge hinzufügen könntest?
24.04.2012
Xantiva 2,3k 2 9
Xantiva 2,3k 2 9
0
ok verstanden set MEthoden überschrieben es ja immer ..habe es jetzt mit einem string builder realisiert...

/**
* Gibt die Wertetabelle zurück für das ganze x Intervall[-9..9]
*
* @param stringFunction
* Funktion für die, die Wertetabelle berechnet werden soll
* @return
*/
public void printWertetabelle(String stringFunction) {
MathEngine mathEngine = new MathEngine();
IFunction f = mathEngine.eval(stringFunction);
StringBuilder stringBuilder = new StringBuilder();
// TextLabel auf shell erstellen für die Wertetabelle
Label label = new Label(shell, SWT.LEFT_TO_RIGHT | SWT.WRAP | SWT.BORDER);
label.setBounds(750, 140, 80, 250);
for (int x = -9; x <= 9; x++) {
label.setText(" f(" + x + ")=" + f.f(x));
stringBuilder.append(label.getText()+"\r\n");
}
label.setText(stringBuilder.toString());
}


und es funktioniert ;)
24.04.2012
tanzverfuehrung 147 8
Dann könntest Du meine Antwort auch "akzeptieren". Siehe http://codekicker.de/faq
Xantiva 24.04.2012
In den FAQ sind sicher auch die Kommentar- und die TAG-Funktion erklärt... ;-)
Eiger 24.04.2012
ok alles durchgelesen mal...sorry bin noch neu hier ;)
tanzverfuehrung 24.04.2012

Stelle deine Programmieren-Frage jetzt!