firstNameProperty() { if (firstName == null) firstName = new StringProperty();return firstName; }private StringProperty lastName;public void setLastName(String value) { lastName.set(value); }public String getLastName() { return lastName.get(); }public StringProperty lastNameProperty() { if (lastName == null) lastName = new StringProperty();return lastName; } }En mi ejemplo utilizo una clase JPA TbTlmkChamada que es recuperada por la clase TbTlmkChamadaJpaController. A medida que lo JPA solo permite la utilizacion de determinados tipos de atributos (en el que los descendientes de los Property s no se ajustan a) He creado una clase (Proxy) TbTlmkChamadaFxBean con el fin de recibir los objetos de base de datos. Esta clase solo tiene los mismos atributos que la clase original, pero con los descendientes de los tipos de javafx.beans.Property.Bueno, no han tocado el TableView. El momento es ahora.Para una vista basica, podemos crear un estandar TableView con el siguiente formato:TbTlmkChamadaJpaController control = new TbTlmkChamadaJpaControllerImpl(telemarketingserver.TelemarketingServer.emf); tabela = new TableView();List<TbTlmkChamada> findTbTlmkChamadaEntities = control.findTbTlmkChamadaEntities();List<TbTlmkChamadaFxBean> lista = new ArrayList<TbTlmkChamadaFxBean>();for (int i=0;i < TbTlmkChamadaEntities.size();i++) {lista.add(new TbTlmkChamadaFxBean(findTbTlmkChamadaEntities.get(i)));}ObservableList<TbTlmkChamadaFxBean> chamadas = FXCollections.observableList(lista);tabela.setItems(chamadas);TableColumn<Integer> codigoCol = new TableColumn<Integer>("Codigo");codigoCol.setProperty("codigo");TableColumn<String> dadosCol = new TableColumn<String>("Dados");dadosCol.setProperty("dados");TableColumn<Date> dataCol = new TableColumn<Date>("Data");dataCol.setProperty("proxChamada");final TableColumn<TbTlmkFila> filaCol = new TableColumn<TbTlmkFila>("Fila");filaCol.setProperty("fila");tabela.getColumns().addAll(codigoCol,dadosCol,filaCol,dataCol);tabela.setPrefWidth(800);getChildren().add(tabela);que se traducira en una tabla como esta:Como usted puede ver las columnas se coloco en segundo lugar la clase atributos TbTlmkChamadaFxBean (utilizando su metodo toString ()).Ahora usted puede mejorar el funcionamiento de esta tabla. Inicialmente, el orden de las filas (en el codigo de ejemplo para la columna):codigoCol.setComparator(new Comparator() {@Overridepublic int compare(Integer o1, Integer o2) {return o1.compareTo(o2);}});Con estas lineas de codigo que establece la comparacion utilizada por el columna codigoCol para comparar el valor de los objetos.Tambien puede modificar el contenido visible de cada celula, como en el siguiente codigo:filaCol.setCellFactory(new Callback<TableColumn<TbTlmkFila>, TableCell<TbTlmkFila>>() {@Overridepublic TableCell<TbTlmkFila> call(TableColumn<TbTlmkFila> param) {TableCell<TbTlmkFila> cell = new TableCell<TbTlmkFila>() {@Override public void updateItem(TbTlmkFila value, boolean empty) {super.updateItem(value, empty);if (empty) {setNode(null);} else {VBox vbox = new VBox(5);vbox.getChildren().add(new Label(value.getNome()));vbox.getChildren().add(new Label(value.getCliente().getNome()));vbox.setStyle("-fx-background-color:#FF0000;");setNode(vbox);}}};return cell;}});Utilizando el metodo setCellFactory es possible crear CellFactory s personalizado para cada columna. Lo que no esta bien documentada en la API de JavaFX 2.0 es la forma de acceder al valor del objeto en relacion con la celula. Esto se hace escribiendo en la UpdateItem metodo. Dentro de este metodo es donde se establece lo que se presentara en cada celda.El resultado de este codigo es el siguiente tabla:como resultado de CellFactory una columna es un objeto de nodo de clase, la imaginacion de los desarrolladores es el limite de lo que se puede presentar en una celda: Region, ListView, Button, de otros TableView. Las posibilidades son infinitas.Espero que este mensaje puede ser util a alguien como lo fue para mi.Buenos codigos a todos.