シリアル通信で入ってくる値でリアルタイムグラフを作っています。「摂氏」値と呼ばれるデータが入ってきます。JLabel の GUI に表示しているので、値は常に変化します。私が抱えている問題は、JLabel の値を華氏に、または摂氏に戻すことができるボタンが必要なことです。だから今、私は updateTemp() メソッドを呼び出す actionPerformed を持っているので、プログラムが始まったらすぐに 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.、残りの時間は変更されます。ありがとう