相关疑难解决方法(0)

连接具有StringConverter的Slider和Spinner

对于数字输入,将模拟控件与文本显示同步有时会很方便。在此Swing 示例中,a JSpinner和a JSlider分别监听更改事件,并分别更新对方的模型以进行匹配。如下所示,一个类似的JavaFX程序将a Spinner和a 连接起来Slider,这些侦听器使控件保持协调:

slider.valueProperty().addListener((Observable o) -> {
    spinner.getValueFactory().setValue(slider.getValue());
});
spinner.valueProperty().addListener((Observable o) -> {
    slider.setValue((double) spinner.getValue());
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我StringConverter在微调器中添加时SpinnerValueFactory,初始值是未格式化的,直到更改了任何一个控件为止-即使添加转换器再次显式设置初始值时:

spinner.getValueFactory().setConverter(…);
spinner.getValueFactory().setValue(INITIAL_VALUE);
Run Code Online (Sandbox Code Playgroud)

我要去哪里错了?

图片

import java.text.NumberFormat;
import javafx.application.Application;
import javafx.beans.Observable;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.control.Spinner;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.util.converter.PercentageStringConverter;

/**
 * @see /sf/answers/424759051/
 */
public class SpinSlider extends Application {

    private static final double MIN = 0;
    private static final double MAX …
Run Code Online (Sandbox Code Playgroud)

java swing javafx slider spinner

5
推荐指数
1
解决办法
164
查看次数

标签 统计

java ×1

javafx ×1

slider ×1

spinner ×1

swing ×1