I am trying to implement a program using MVC design pattern that allows users to enter values into two JTextFields and these values will then compute and display a final value in a JLabel. See code snippet below.
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()));
}
}
I have this working but I am now trying to implement the same strategy but I want to use JScrollBars instead of JTextFields to set the values. The bandwidth and signalToNoise are double values. Is there a way to do this?
This is what I have attempted:
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()));
}
}
So, basically, you're asking how to convert a double value to an int value, right?
This truncates:
int valueAsInt = (int) model.getBandwidth();
And this rounds:
int valueAsInt = (int) Math.round(model.getBandwidth());