форматировать текст Label TornadoFX - PullRequest
2 голосов
/ 13 марта 2019

У меня есть метка в представлении, которая управляется целочисленным свойством, когда значение отрицательное, оно отображается со знаком минус, а когда значение положительное, то нет.Тем не менее, я бы хотел, чтобы на ярлыке отображалось «+5», «-3» ...

. В качестве примера рассмотрим следующий код

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
    }
}

Есть ли способ форматирования?текст когда свойство меняется?Спасибо.

1 Ответ

3 голосов
/ 13 марта 2019

Вы можете создать привязку строк, содержащую значение, которое вы хотите отобразить в метке, а затем привязать свойство значения метки к этому:

val prop = SimpleIntegerProperty(1)
val propDesc = prop.stringBinding { "%+d".format(it) }

Теперь вы можете сделать:

label(propDesc)

Метка будет обновляться всякий раз, когда свойство изменяет значение.

Вы, конечно, можете также вставить это:

label(prop.stringBinding { "%+d".format(it) })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...