2017-08-02 2 views
1

Je crée une tableview qui a 4 en-têtes principaux, et chaque en-tête a une propriété "costs" et "units". headers exampleComment créer un en-tête de colonne imbriqué/divisé à l'aide de TornadoFx?

En JavaFX plaine, vous pouvez ajouter des colonnes à colonnes et faire cette scission:

TableColumn emailCol = new TableColumn("Email"); 
TableColumn firstEmailCol = new TableColumn("Primary"); 
TableColumn secondEmailCol = new TableColumn("Secondary"); 
emailCol.getColumns().addAll(firstEmailCol, secondEmailCol); 

est-il possible de le faire en tornadoFX?

Répondre

1

Vous créez des colonnes imbriquées dans TornadoFX en utilisant le constructeur nestedColumn:

nestedColumn("header1") { 
    column("costs", Item::costsProperty) 
    column("units", Item::unitsProperty) 
} 

En plus de créer les colonnes, ce code crée également un valueFactory pour chaque colonne :)

Une autre chose très importante à noter , c'est que vous pouvez faire absolument tout ce que vous pouvez faire dans JavaFX au sein de TornadoFX. TornadoFX ne cache jamais les API JavaFX sous-jacentes, donc même si nous n'avions pas de générateur nestedColumn, vous auriez pu utiliser votre code exact ci-dessus, juste avec la syntaxe de Kotlin, et cela fonctionnerait simplement.

Si jamais vous rencontrez un cas où vous ne savez pas comment faire quelque chose dans TornadoFX, vous pouvez toujours utiliser l'approche traditionnelle JavaFX pour obtenir le même résultat :)