2015-12-31 3 views
0

У меня есть ярлык JavaFX, который я хочу использовать для отображения другого статуса.Показать строку на основе значения int

int status; 

Label finalFieldAgentStatus = new Label(); 

Когда я status = 0 Я хочу напечатать finalFieldAgentStatus = "Innactive"; Когда я status = 1 Я хочу напечатать finalFieldAgentStatus = "Active";

Есть ли умный способ автоматически установить finalFieldAgentStatus строку, основанную на status значения?

ответ

1

Вы должны изменить тип своего поля статуса и использовать IntegerProperty.

Посредством этого можно добавить привязку между этим свойством и label.textProperty(), чтобы автоматически изменять значение при изменении состояния.

Вы можете прочитать больше о привязок здесь: https://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm

EDIT:

Например, вы можете сделать:

IntegerProperty status = new SimpleIntegerProperty(); 
Label label = new Label(); 
status.addListener((observable, oldValue, newValue) -> { 
    label.setText(newValue.intValue() == 1 ? "Active" : "Inactive"); 
}); 

или вы можете сделать:

IntegerProperty status = new SimpleIntegerProperty(); 
Label label = new Label(); 
label.textProperty().bind(Bindings.createStringBinding(
     () -> status.intValue() == 1 ? "Active" : "Inactive", status)); 
+0

Можете ли вы показать мне рабочий пример, пожалуйста? –

+0

@PeterPenzov Я только что отредактировал свой ответ, чтобы добавить эту ссылку со многими примерами привязок: https://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm – Prim

+0

Я вижу много примеров. Можете ли вы дать лучший? –

Смежные вопросы