将 JScrollBar 值设置为 double?

Set JScrollBar value as double?

我正在尝试使用 MVC 设计模式实现一个程序,该模式允许用户将值输入到两个 JTextField 中,然后这些值将计算并在 JLabel 中显示最终值。请参阅下面的代码片段。

    public void update(Observable o, Object arg){
    if (o instanceof ShannonsModel){
        ShannonsModel model = (ShannonsModel)o;

        bandwidthJTextField.setText(String.valueOf(model.getBandwidth()));          
        signalToNoiseJTextField.setText(String.valueOf(model.getSignalToNoise()));          
        maxDataRateJLabel.setText(String.valueOf(model.getMaximumDataRate()));

    }
}

我有这个工作,但我现在正在尝试实施相同的策略,但我想使用 JScrollBars 而不是 JTextFields 来设置值。 bandwidth 和 signalToNoise 是双精度值。有办法吗?

这是我尝试过的:

    public void update(Observable o, Object arg){
    if (o instanceof ShannonsModel){
        ShannonsModel model = (ShannonsModel)o;
        bandwidthJScrollBar.setValue(Integer.parseInt(String.valueOf(model.getBandwidth())));
        signalToNoiseJScrollBar.setValue(Integer.parseInt(String.valueOf(model.getSignalToNoise())));
        maxDataRateJLabel.setText(String.valueOf(model.getMaximumDataRate()));
    }
}

所以,基本上,您是在问如何将 double 值转换为 int 值,对吗?

这会截断:

int valueAsInt = (int) model.getBandwidth();

而这一轮:

int valueAsInt = (int) Math.round(model.getBandwidth());