Hvordan legge til en tabell som en vare (node) i en TreeTableView

stemmer
0

Jeg prøver å legge til en tabell inne i en TreeTableView som et tre element. Er det mulig? Jeg ønsker å vise data som nedenfor. For nå er det hardkodet senere vil jeg bruke JPA å få data fra databasen.

Name        Designation
------------------------------------------  
Tanvir      WDD
Rezwan      GD
   Jacob      HR
   Harold     HR

Her er min tilnærming. I stedet for å legge på bordet (subTable)Jeg har også prøvd med ObservableList, men resultatet er det samme.

public class UserObjectTreeTest implements Initializable {

@FXML
private TreeTableView<Object> treeTable;
@FXML
private TreeTableColumn<Object, String> colDesignation;
@FXML
private TreeTableColumn<Object, String> colUserName;

private TableView<Object> subTable = new TableView<Object>();
private TableColumn colName = new TableColumn<>(Name);;

private TableColumn colDesig = new TableColumn<>(Designation);

ObservableList<Object> data = FXCollections.observableArrayList(new Person(Jacob, HR),
        new Person(Harold, HR)

);

TreeItem<Object> user1 = new TreeItem<>(new Person(Aritra, SD));
TreeItem<Object> user2 = new TreeItem<>(new Person(Tanvir, WDD));
TreeItem<Object> user3 = new TreeItem<>(new Person(Rezwan, GD));
TreeItem<Object> user4 = new TreeItem<>(subTable);

TreeItem<Object> root = new TreeItem<>(new Person(Name, Designation));

@Override
public void initialize(URL arg0, ResourceBundle arg1) {
    // TODO Auto-generated method stub

    user3.getChildren().add(user4);

    colUserName.setCellValueFactory((cellData) -> ((Person) cellData.getValue().getValue()).nameProperty());        
    colDesignation.setCellValueFactory((celldata) -> ((Person) celldata.getValue().getValue()).designationProperty());

    colName.setCellValueFactory(new PropertyValueFactory<Person, String>(String));
    colDesig.setCellValueFactory(new PropertyValueFactory<Person, String>(String));

    subTable.setItems(data);
    subTable.getColumns().addAll(colName, colDesig);
    root.getChildren().setAll(user1, user2, user3);
    treeTable.setRoot(root);
    treeTable.setShowRoot(true);

}

class Person {
    private StringProperty name = new SimpleStringProperty();
    private StringProperty designation = new SimpleStringProperty();

    public Person() {

    }

    public Person(String name, String designation) {

        this.name = new SimpleStringProperty(name);
        this.designation = new SimpleStringProperty(designation);
    }

    public final StringProperty nameProperty() {
        return this.name;
    }

    public final String getName() {
        return this.nameProperty().get();
    }

    public final void setName(final String name) {
        this.nameProperty().set(name);
    }

    public final StringProperty designationProperty() {
        return this.designation;
    }

    public final String getDesignation() {
        return this.designationProperty().get();
    }

    public final void setDesignation(final String designation) {
        this.designationProperty().set(designation);
    }

    @Override
    public String toString() {
        return person [name= + name + , designation= + designation + ];
    }

}

}

Hva er den riktige måten å løse det ?. Kan noen hjelpe meg i denne forbindelse eller noen forslag?

Publisert på 02/09/2018 klokken 04:54
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more