Hi,
im Rahmen eines Projektes wäre eine TableView für die Ansicht der Daten eigentlich ganz gut geeignet, nur gibt es da ein Problem: ich weiß nicht wie die TableView zu füllen ist und wie ich die Daten wieder rauslesen kann.
Im Prinzip gibt es im Model nur eine einzige Liste mit dem Typ "Account".
Ein Account hat eines Liste mit dem Typ "Transfer". Fast alle Attribute sind Properties, somit wäre das aktualisieren kein Problem.
Demnach soll es in der TableView nur zwei Spalten geben, eine für Account und eine für Transfer, wobei für jeden Account alle Transfers vertikal aufgelistet werden sollen, also pro Transfer eine eigene Zelle (Cell).
Exemplarisch also:
Was ich eben nicht will, ist, dass der Account in jeder Zeile nochmals vorkommt.. (es sei denn, die Liste der Transfers ist so lange und man scrollt so weit runter, bis der Eintrag des Accounts nicht mehr zu sehen ist, dann würde ich ihn gerne "on top" behalten, aber eins nach dem anderen).
Bisher habe ich nur die Grundlagen geschaffen. Was wie folgt aussieht:
Für die Transfers sollen nur die Funktionen (wie oben dargestellt) angezeigt werden.
Wie ist das lösbar?
Klicke ich auf eine Zelle (es wird immer die gesamte Reihe markiert. Kann man auch einzelne Zellen markieren?), so soll es möglich sein, Account und Transfer über vorgesehene Buttons zu verändern. Problem hierbei ist: wie kriege ich die Referenz auf das Transfer-Object?
Das ist sicherlich nicht einfach. Leider habe ich im Internet nichts gefunden, das mir helfen könnte, daher hoffe ich, dass mir jemand von euch helfen kann
im Rahmen eines Projektes wäre eine TableView für die Ansicht der Daten eigentlich ganz gut geeignet, nur gibt es da ein Problem: ich weiß nicht wie die TableView zu füllen ist und wie ich die Daten wieder rauslesen kann.
Im Prinzip gibt es im Model nur eine einzige Liste mit dem Typ "Account".
Ein Account hat eines Liste mit dem Typ "Transfer". Fast alle Attribute sind Properties, somit wäre das aktualisieren kein Problem.
Demnach soll es in der TableView nur zwei Spalten geben, eine für Account und eine für Transfer, wobei für jeden Account alle Transfers vertikal aufgelistet werden sollen, also pro Transfer eine eigene Zelle (Cell).
Exemplarisch also:
Code:
Account 1 Transfer 1a
Transfer 2a
Transfer 3a
Account 2 Transfer 1b
Account 3 Transfer 1a
Transfer 1b
Transfer 2a
Was ich eben nicht will, ist, dass der Account in jeder Zeile nochmals vorkommt.. (es sei denn, die Liste der Transfers ist so lange und man scrollt so weit runter, bis der Eintrag des Accounts nicht mehr zu sehen ist, dann würde ich ihn gerne "on top" behalten, aber eins nach dem anderen).
Bisher habe ich nur die Grundlagen geschaffen. Was wie folgt aussieht:
Code:
TableColumn<Account, String> accountColumn = new TableColumn<>("Accounts");
accountColumn.setCellValueFactory(item -> item.getValue().nameProperty());
TableColumn<Account, Transfer> transfersColumn = new TableColumn<>("Funktionen");
transfersColumn.setCellFactory(new Callback<TableColumn<Account, Transfer>, TableCell<Account, Transfer>>() {
@Override
public TableCell<Account, Transfer> call(TableColumn<Account, Transfer> param) {
TableCell<Account, Transfer> functionCell = new TableCell<Account, Transfer>() {
@Override
protected void updateItem(Transfer item, boolean empty) {
if (item != null) {
double function= item.getTransferFuction();
Label functionLabel = new Label(String.valueOf(function));
if (function< 0) {
function.setStyle("-fx-font-color:red");
} else {
functionLabel.setStyle("-fx-font-color:green");
}
setGraphic(functionLabel);
}
}
};
return functionCell;
}
});
Für die Transfers sollen nur die Funktionen (wie oben dargestellt) angezeigt werden.
Wie ist das lösbar?
Klicke ich auf eine Zelle (es wird immer die gesamte Reihe markiert. Kann man auch einzelne Zellen markieren?), so soll es möglich sein, Account und Transfer über vorgesehene Buttons zu verändern. Problem hierbei ist: wie kriege ich die Referenz auf das Transfer-Object?
Das ist sicherlich nicht einfach. Leider habe ich im Internet nichts gefunden, das mir helfen könnte, daher hoffe ich, dass mir jemand von euch helfen kann