私がやろうとしているのは、2つのJComboBoxと2つのJTextFieldボックスを作成することです。最初のJComboBoxで温度タイプ(華氏、摂氏、ケルビン)を使用し、その最初の温度タイプを2番目のJComboBoxで選択された温度タイプに変換するコードを記述できる必要があります。これは、最初のJTextFieldボックスに入力された数値(選択した一時タイプの初期値)を使用して実行し、2番目のJTextFieldボックスで新しい温度タイプに変換する必要があります。これが私がどこまで進んだかです...
テストを実行すると40行目にNullPointerException
表示されますが、ifステートメントで使用されているdoubleを正しくフォーマットして、新しい値が2番目のJTextFieldボックスに文字列として再び表示されるようにしたかどうかわかりません。他のすべてのシナリオを処理するために他のすべてのifステートメントを作成する前に、この時点までに行ったことが正しいかどうかについてのいくつかのポインターを探しています。
package temperatureConverter;
import java.awt.FlowLayout;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import javax.swing.JFrame;
import javax.swing.JComboBox;
import javax.swing.JTextField;
public class TempConverter extends JFrame
{
private JComboBox firstComboBox;
private JComboBox secondComboBox;
private JTextField initialTemp;
private JTextField convertedTemp;
//private enum TempType { FAHRENHEIT, CELSIUS, KELVIN};
private static final String[] tempType = { "Fahrenheit", "Celsius", "Kelvin" };
public TempConverter()
{
super("Temperature Converter");
setLayout(new FlowLayout());
firstComboBox = new JComboBox(tempType);
firstComboBox.setMaximumRowCount(3);
firstComboBox.addItemListener(null);
add(firstComboBox);
secondComboBox = new JComboBox(tempType);
secondComboBox.setMaximumRowCount(3);
secondComboBox.addItemListener(null);
add(secondComboBox);
initialTemp = new JTextField ("", 10);
initialTemp.addActionListener(null);
add(initialTemp);
convertedTemp = new JTextField ("", 10);
convertedTemp.addActionListener(null);
add(convertedTemp);
}
String theInitialTempType = (String) firstComboBox.getSelectedItem();
String theTempTypeToConvertTo = (String) secondComboBox.getSelectedItem();
String theChosenTemp = initialTemp.getSelectedText();
String theNewTemp = convertedTemp.getSelectedText();
private class textHandler implements ItemListener
{
public void itemStateChanged (ItemEvent event)
{
double convertedNumberForTheChosenTemp = Double.parseDouble(theChosenTemp);
double convertedNumberForTheNewTemp = Double.parseDouble(theNewTemp);
//String string1 = "";
//String string2 = "";
if ( theInitialTempType == tempType[0] && theTempTypeToConvertTo == tempType[1] )
{
convertedNumberForTheNewTemp = (convertedNumberForTheChosenTemp - 32) * 5 / 9;
String result = String.valueOf(convertedNumberForTheNewTemp);
}
}
}
}