将 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());
我正在尝试使用 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());