Para los que extrañan el DefaultTableModel en JavaFX.

Como lo dice el título de la noticia... Cuando he tenido la necesidad de hacer pequeños demos de forma rápida en la plataforma JavaFX o, cuando mis datos, por su naturaleza, están estructurados como matrices simples, el poder desplegarlos en una TableView de JavaFX, implica transformar su estructura para obtener una colección observable, con propiedades observables... Algunas veces, esto no me parece práctico y he extrañado el fácil e intuitivo DefaultTableModel que teníamos en Swing... Cosa aparte su eficiencia y temas adoc...

Así que, he creado una pequeña librería para JavaFX un poco al estilo de ese antiguo pero bien popularizado componente.

Aquí les dejo un ejemplo de uso:

import javafx.scene.Scene;
import javafx.scene.control.TableView;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import org.grios.tableadapter.DefaultTableAdapter;
 
public class Main extends javafx.application.Application
{
    private BorderPane pnlRoot;
    private TableView myTableView;
    private DefaultTableAdapter dta;
 
    Scene scene;
 
    @Override
    public void start(Stage primaryStage) throws Exception
    {
        initComponents();
        primaryStage.setScene(scene);
        primaryStage.show();
    }
 
    private void initComponents()
    {
        pnlRoot = new BorderPane();
        pnlRoot.prefWidthProperty().set(480);
        pnlRoot.prefHeightProperty().set(320);
        myTableView = new TableView();
        pnlRoot.setCenter(myTableView);
        buildTableData();
 
        scene = new Scene(pnlRoot);
    }
 
    private void buildTableData()
    {
        String[]    columnNames =   {   "First Name",
                                        "Last Name",
                                        "Sport",
                                        "# of Years",
                                        "Vegetarian"
                                    };
        Object[][]  data =  {
                                {"Kathy", "Smith",
                                 "Snowboarding", new Integer(5), new Boolean(false)},
                                {"John", "Doe",
                                 "Rowing", new Integer(3), new Boolean(true)},
                                {"Sue", "Black",
                                 "Knitting", new Integer(2), new Boolean(false)},
                                {"Jane", "White",
                                 "Speed reading", new Integer(20), new Boolean(true)},
                                {"Joe", "Brown",
                                 "Pool", new Integer(10), new Boolean(false)}
                            };
        dta = new DefaultTableAdapter(myTableView, data, columnNames);
    }
    public static void main(String[] args)
    {
        launch (args);
    }
}

Les paso la liga de donde descargarlo y el blog original:

Liga de la librería con código de ejemplo.

Liga de la entrada original en wordpress.

Saludos a toda la comunidad Java México.