Tengo una etiqueta en una vista que está controlada por una propiedad de número entero, cuando el valor es negativo, se muestra con un signo menos, cuando el valor es positivo, no. Sin embargo, me gustaría que la etiqueta muestre "+5", "-3"...
tome el siguiente código como ejemplo
import javafx.beans.property.SimpleIntegerProperty import tornadofx.* class MyView : View() { val negProp = SimpleIntegerProperty(-3) // this prop is in a ItemViewModel val posProp = SimpleIntegerProperty(+4) // this prop is in a ItemViewModel override val root = hbox { label(negProp) // shows - 3 label(posProp) // shows 4 } }¿Hay alguna manera de que pueda formatear el texto una vez que cambie la propiedad? Gracias.
Puede crear un enlace de cadena que contenga el valor que desea mostrar en la etiqueta y luego vincular la propiedad de valor de la etiqueta a eso:
val prop = SimpleIntegerProperty(1) val propDesc = prop.stringBinding { "%+d".format(it) }Ahora puedes hacer:
label(propDesc)La etiqueta se actualizará cada vez que la propiedad cambie de valor.
Por supuesto, también puede alinearlo:
label(prop.stringBinding { "%+d".format(it) })