¿Cuál es la mejor práctica para crear un componente de IU personalizado en tornadofx?

Soy nuevo en JavaFX y tornadofx, y ahora necesito crear algunos componentes UI altamente personalizados (incluyendo button de enviar, campo de input de text, campo de input de contraseña, selector de date y hora, selector desplegable, etc.) que se muestran a continuación:

enter image description here

Entonces, ¿cuál es la mejor práctica para crear estos componentes? mi pregunta incluye:

  1. ¿Qué súper class debería ampliar mi componente personalizado de interfaz de usuario?
  2. ¿Hay algún ejemplo existente en tornadofx?
  3. ¿Puedo usar bootstrap en mi caso? y si es así, ¿cómo puedo usar bootstrap?

gracias (esta pregunta también se publicó aquí: https://github.com/edvin/tornadofx/issues/498 )

Realmente no hay nada específico de TornadoFX en este process, pero tengo dos recomendaciones:

No cree un control personalizado a less que realmente lo necesite. Para agregar funcionalidad personalizada a un Botón o un TextField, instale un skin personalizado en su lugar.

Si realmente necesita un control personalizado, considere extender la class Control. Para get más componentes centrados en el layout, puede ampliar un layout en su lugar, o simplemente Panel.

Para get más información sobre los componentes personalizados, considere leer este shiny libro:

https://www.amazon.com/Mastering-JavaFX-Controls-Oracle-Press-ebook/dp/B00L3TF02K

También mira estos videos:

https://www.youtube.com/watch?v=L9xtOhdSx6k

https://www.youtube.com/watch?v=7PPcM0E5yQw

  • ¿Hay alguna manera de vincular una propiedad a appConfig en tornadofx?
  • En TornadoFX, ¿cómo puedo hacer que una propiedad cambie cuando cambian otras properties?
  • TornadoFX con TestFX cierra la vista después de cada TestCase
  • TableView de Tornadofx usando comboBox y agregando FXEvent en los botones
  • En TornadoFX, ¿cómo puedo vincular las properties de BigDecimal a otra propiedad de BigDecimal usando objectBinding?
  • TornadoFX JavaFX Sync Desplazarse por las vistas de tabla
  • Kotlin y TornadoFX: ¿une una propiedad observable a una function de recostackción?
  • No se puede usar fontawesomefx con kotlin y tornadofx
  • java.lang.ClassNotFoundException: no encontró la class "com.my.app.example.Main" en la ruta: DexPathList
  • La compilation de Gradle no puede encontrar tornadofx en Linux
  • Animación consecutiva en TornadoFX?