只是一段代码。为班级做一个项目,我必须根据对它们各自的更改来转换摄氏度、华氏度和开尔文JFormattedTextFields
。问题是,当对listener
摄氏温度的变化做出反应时,我的程序会改变华氏温度,然后它对我的华氏温度监听器做出反应,它再次对我的摄氏温度监听器做出反应,依此类推。由于这个问题,我还没有在我的 Kelvin 上工作过。我怀疑是否需要我的代码,因为这更像是一个概念问题,但无论如何:
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);
}
}