Aquí podría ser tu PUBLICIDAD


¿Cómo añadir una tabla como un punto (nodo) en un TreeTableView

votos
0

Estoy tratando de agregar una tabla dentro de una TreeTableView como un elemento del árbol. ¿Es posible? Quiero mostrar los datos como a continuación. Por ahora, está codificado tarde voy a utilizar JPA para obtener los datos de la base de datos.

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

Aquí está mi enfoque. En lugar de añadir la tabla (subTable)también probé con ObservableListpero el resultado es el mismo.

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

}

}

¿Cuál es la manera correcta para resolverlo ?. ¿Alguien puede ayudar en este sentido o alguna sugerencia?

Publicado el 02/09/2018 a las 04:54
fuente por usuario Aritra Paul
En otros idiomas...        العربية       


Aquí podría ser tu PUBLICIDAD