Как добавить таблицу в виде элемента (узла) в виде табличного дерева

голоса
0

Я пытаюсь добавить таблицу внутри табличного дерева в качестве элемента дерева. Является ли это возможным? Я хочу, чтобы показать данные, как показано ниже. На данный момент, это жёстко позже я буду использовать JPA, чтобы получить данные из базы данных.

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

Вот мой подход. Вместо добавления таблицы (subTable)я также попытался с , ObservableListно результат тот же.

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 + ];
    }

}

}

Что такое правильный способ решить ?. Может кто-нибудь помочь мне в этом отношении или любое предложение?

Задан 02/09/2018 в 04:54
источник пользователем
На других языках...                            

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