コードのほんの一部です。クラスのプロジェクトで、摂氏、華氏、ケルビンをそれぞれの変更に基づいて変換する必要がありますJFormattedTextFields
。問題は、listener
が摂氏の変化に反応すると、プログラムが華氏を変更し、それが華氏リスナーに反応し、摂氏リスナーが再び反応するということです。この問題のため、私はまだケルビンの作業をしていません。これは概念的な問題であるため、私のコードが必要であるとは思えませんが、とにかくここにあります:
private class ValueChangeHandler implements PropertyChangeListener
{
public void propertyChange(PropertyChangeEvent event)
{
Object celsiusChange = event.getSource();
Object fahrenheitChange = event.getSource();
Object kelvinChange = event.getSource();
if(celsiusChange == celsiusField)
{
tempCelsius = (Double)celsiusField.getValue();
tempFahrenheit = celToFah(tempCelsius);
tempKelvin = celToKel(tempCelsius);
fahrenheitField.setValue(tempFahrenheit);
kelvinField.setValue(tempKelvin);
}
else if(fahrenheitChange == fahrenheitField)
{
tempFahrenheit = (Double)fahrenheitField.getValue();
tempCelsius = fahToCel(tempFahrenheit);
tempKelvin = fahToKel(tempFahrenheit);
celsiusField.setValue(tempCelsius);
kelvinField.setValue(tempKelvin);
}
}