gpt4 book ai didi

JavaFX 标签动态显示使用某些 Controller 计算的值

转载 作者:行者123 更新时间:2023-12-01 19:50:24 25 4
gpt4 key购买 nike

我有一些使用监听器实现的 JavaFX Controller (例如 SliderToggleGroup 中的一些 RadioButton)。我想要一个 LabelTextField (我认为前者更适合我的要求),它显示通过我选择的数字进行操作所产生的数字 Controller 。每次用户使用 Controller 时,Label 应自动更新显示的值。我怎样才能实现这个目标?

基本示例

private Slider firstSlider = new Slider(0, 255, 0);
private Slider secondSlider = new Slider (0, 15, 0);
private Label firstSliderValue = new Label("256 bytes (64 words)");
private Label secondSliderValue = new Label("0.413818359375 KHz");

// I would like this Label to display for example
// double math = secondSlider.getValue() * firstSlider.getValue();
private Label finalValueLabel;

firstSlider.valueProperty().addListener((ov, old_val, new_val) -> {
int value = (int) Math.round(new_val.doubleValue());
firstSlider.setValue(value);
System.out.println(value);
firstSliderValue.setText(getDisplayMemory(value));
});

secondSlider.valueProperty().addListener((ov, old_val, new_val) -> {
int value = (int) Math.round(new_val.doubleValue());
secondSlider.setValue(value);
System.out.println(value);
secondSliderValue.setText(getDisplayFrequency(value));
});

getDisplayFrequencygetDisplayMemory 只是在 firstSliderValuesecondSliderValue 上显示特定文本的一些方法取决于通过 slider 选择的值,但它们对于我的问题来说不是必需的。

编辑:添加了一个基本且简单的示例。

最佳答案

您可以使用Bindings.createStringBinding

例如

label.textProperty().bind(
Bindings.createStringBinding(
() -> String.format("%.2f", firstSlider.getValue()*secondSlider.getValue()),
firstSlider.valueProperty(), secondSlider.valueProperty()
)
);

如果您愿意,您也可以改进其他代码。

例如

firstSliderValue.textProperty().bind(
Bindings.createStringBinding(
() -> getDisplayMemory((int) Math.round(firstSlider.getValue())),
firstSlider.valueProperty()
)
);
secondSliderValue.textProperty().bind(
Bindings.createStringBinding(
() -> getDisplayFrequency((int) Math.round(secondSlider.getValue())),
secondSlider.valueProperty()
)
);

关于JavaFX 标签动态显示使用某些 Controller 计算的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51474478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com