Empezamos creando el diseño de la ventana de la aplicación, dónde se debe añadir un elemento TableView. A este elemento, le damos un id propio, en este caso lo llamaré tablaAplicaciones, quedando la ventana de la siguiente manera:


A continuación, para poder visualizar los datos en la tabla, vamos a crear un objeto Model con los campos correspondientes a las columnas de la tabla.
En este caso, el objeto se va a llamar objetoModel. Los tipos que se deben declarar para sus atributos dentro de la clase, si es un número va a ser de tipo IntegerProperty , mientras que si es texto o String lo declaramos de tipo StringProperty.
Después, creamos su constructor pasándolo de tipo String o Integer, para luego crear un objeto y transformarlo, dependiendo el tipo de dato que vaya a recibir, en SimpleIntegerProperty (si es un número entero) o bien, SimpleStringProperty (si es una cadena de caracteres o texto).
También añadimos los métodos getter y setter poniendo delante de la clase ( @Data ), usando así, lombok para reducir código.
Muestro el ejemplo a continuación:

Ahora dentro de la clase que tenemos que generar junto con la vista a la que hace referencia, asociamos el elemento TableView y lo declaramos junto con las columnas de la tabla como muestro a continuación.

La tabla la ponemos del tipo de la clase que hemos creado anteriormente; es decir, ObjetoModel.
Para las columnas de la tabla, hay que establecer dos tipos, primero la clase de donde viene el dato que vamos a recibir, y después el tipo de dato, quedando como la imagen de abajo:

Para rellenar la tabla, simplemente tenemos que instanciar varios objetos de la clase creada anteriormente (ObjetoModel), con los datos que queremos mostrar en la tabla y también creamos un ObservableList:

Solo queda pasar los datos de la lista listaApps al objetoModelObservableList, he ir asignando a las columnas con sus correspondientes get, los datos almacenados en el objetoModelObservablelist de la siguiente manera:

Una vez recogido los datos, ya se muestran en la TableView cuando se ejecute o arranque la aplicación.
Comprobamos el resultado siguiendo los pasos anteriores:

Espero que les sirva de ayuda, saludos !!
