イベントハンドラーで何が間違っているのかわかりません。私は良いプログラマーではありません。摂氏から華氏への変換はできますが、その逆はできません。通常、華氏から摂氏への変換では 0.0 が表示されます。摂氏または華氏を選択するための JComboBox であるcfListと関係があるのではないかと思います。
また、値を入力せずに変換ボタンをクリックできるようにしたいと考えています。JTextField は自動的にゼロに設定され、「値がゼロに設定されました」というメッセージが表示されます。
では、どうすればこの全体を機能させることができますか:
- 摂氏を華氏に変換する
- 華氏を摂氏に変換する
- 値なしで摂氏を華氏に変換します(ゼロに設定)
値なしで華氏を摂氏に変換します(ゼロに設定)
class TCalcButtonHandler implements ActionListener { public void actionPerformed(ActionEvent e) { double far, cel; String ff, cc; String inString; inString = tempField.getText(); if(inString==null && cfList.getSelectedIndex() == 0) { degree.setText("F"); cel=0; far = cel*(9/5)+32; ff = far+""; resultField.setText(ff); tempSysField.setText("Value set to zero"); } if(inString==null && cfList.getSelectedIndex() == 1) { degree.setText("C"); far=0; cel = (5/9)*(far-32); cc = cel+""; resultField.setText(cc); tempSysField.setText("Value set to zero"); } if(cfList.getSelectedIndex()==0 && inString!=null) { degree.setText("F"); cel = Double.parseDouble(inString); far = cel*(9/5)+32; ff = far+""; resultField.setText(ff); tempSysField.setText(""); } if(cfList.getSelectedIndex()==1 && inString!=null) { degree.setText("C"); far = Double.parseDouble(inString); cel = (far-32)*(5/9); cc = cel+""; resultField.setText(cc); tempSysField.setText(""); } } }