我正在制作一个实时图表,其中包含通过串行通信传入的值。我有传入的数据,称为我的“摄氏度”值。我在 JLabel 的 GUI 上显示它,所以值不断变化。我遇到的问题是我想要有可以将 JLabel 中的值更改为华氏度或返回摄氏度的按钮。所以现在,我让我的 actionPerformed 调用 updateTemp() 方法,这样它就会在程序运行时立即更新 JLabel。对于我认为需要更改的 3 种方法,我有下面的代码。
public void actionPerformed(final ActionEvent e) {
updateTempC();
final Double n = serial.x;
series.addOrUpdate(new Millisecond(), n);
Object source = e.getSource();
if (e.getSource() == buttonF){
degree.setText("degrees F");
updateTempF();
}
if (e.getSource() == buttonC){
degree.setText("degrees C");
updateTempC();
}
}
public void updateTempF(){
int step1;
int step2;
int step3;
String indata = serial.temp;
int temp = Integer.parseInt(indata);
step1 = temp*9;
step2 = step1/5;
step3 = step2 + 32;
String indata1 = Integer.toString(step3);
this.realtime.setText(indata1);
}
public void updateTempC(){
String indata = serial.temp;
this.realtime.setText(indata);
}
现在,当我按下 JButton 以更改为华氏温度时,它会更改一秒钟,但随后会立即返回显示摄氏度,因为图形每秒都会更新,并且 actionPerformed 将立即返回调用 updateTempC()。当我按下 Fahr 的按钮时,我想知道怎么做。或 Cels.,它会在剩下的时间里改变。谢谢