Hi Leute,
Ich habe eine baumartige Datenstruktur, welche ich zur Anzeige bringen möchte (in JavaFX 2.2 oder höher). Dafür eignet sich am besten eine TreeTableView. Ich habe es schon geschafft, die Daten anzuzeigen, allerdings ändert sich meine Werte im Baum alle 500 ms. Die Anzeige soll dementsprechend sich auch aktualisieren. Bisher habe ich die Anzeige über setCellValueFactory zum laufen gebracht, aber das erscheint mir der falsche Weg zu sein, wenn ich etwas aktualisieren möchte.
Mein Wünsche wären folgende:
Ich habe mal das grobe Gerüst der Datenstruktur eingestellt:
Wichtig:
Die Klassen dürfen nach belieben geändert werden (Observable kann auch entfernt werden, wenn hilfreich). Allerdings möchte ich keine Vermischung zwischen der Datenstruktur und der Oberfläche (JavaFX)!
Grüße
Ich habe eine baumartige Datenstruktur, welche ich zur Anzeige bringen möchte (in JavaFX 2.2 oder höher). Dafür eignet sich am besten eine TreeTableView. Ich habe es schon geschafft, die Daten anzuzeigen, allerdings ändert sich meine Werte im Baum alle 500 ms. Die Anzeige soll dementsprechend sich auch aktualisieren. Bisher habe ich die Anzeige über setCellValueFactory zum laufen gebracht, aber das erscheint mir der falsche Weg zu sein, wenn ich etwas aktualisieren möchte.
Mein Wünsche wären folgende:
- Eine Anzeige, die sich bei Änderungen aktualisiert.
- Abhängig vom Wert der ausgeschrieben wird auch verschieden Icons angezeigt werden
- Auf die einzelnen Zellen noch Tooltips aufgesetzt werden
Ich habe mal das grobe Gerüst der Datenstruktur eingestellt:
Java:
import java.util.Observable;
public abstract class MyElement extends Observable {
public abstract String getName();
public abstract String getValue();
public abstract void update(int value);
}
Java:
import java.util.ArrayList;
public class MyGroupElement extends MyElement {
private ArrayList<MyElement> children = new ArrayList<MyElement>();
@Override
public String getName() {
return ...;
}
@Override
public String getValue() {
return ...;
}
@Override
public void update(int value) {
for(MyElement element : this.children)
element.update(value);
}
public ArrayList<MyElement> getChildren() {
return children;
}
}
Java:
public class MyNormalElement extends MyElement {
@Override
public String getName() {
return ...;
}
@Override
public String getValue() {
return ...;
}
@Override
public void update(int value) {
...
super.setChanged();
super.notifyObservers();
}
}
Wichtig:
Die Klassen dürfen nach belieben geändert werden (Observable kann auch entfernt werden, wenn hilfreich). Allerdings möchte ich keine Vermischung zwischen der Datenstruktur und der Oberfläche (JavaFX)!
Grüße