私はJavaを使い慣れておらず、Java 1クラスを取っています。私は、if文でJComboBox選択を使用して、JTextFieldの選択に基づいて答えを表示しようとしています。それはすべて正しくコンパイルされましたが、答えは表示されず、私は何を変更する必要があるか分かりません。私は検索し、いくつかの異なることを試みたが、誰も動作するように見えませんでした。文章の場合、CoomboBoxを使って方程式の答えがJTextFieldに出力されない
import javax.swing.*;
import java.awt.event.*;
public class HayDyGuiTempConv extends JFrame
{
public static void main(String[] args)
{
new HayDyGuiTempConv();
}
private JButton buttonConvert;
private JButton exitButton;
private JTextField textAmount;
private String fieldText;
private JTextField field;
public HayDyGuiTempConv()
{
this.setSize(440,150);
this.setLocation(350,420);
this.setTitle("Temperature Conversion");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ButtonListener bl = new ButtonListener();
JPanel panel1 = new JPanel();
panel1.add(new JLabel("Enter temperature to convert: "));
textAmount = new JTextField(6);
panel1.add(textAmount);
JComboBox<String> comboBox = new JComboBox<> (new String[] {"C to F", "F to C"});
comboBox.addActionListener(bl);
panel1.add(comboBox);
buttonConvert = new JButton("Convert");
buttonConvert.addActionListener(bl);
buttonConvert.setToolTipText("Convert the temperature.");
panel1.add(buttonConvert);
panel1.add(new JLabel("Temp: "));
field = new JTextField(6);
field.setEditable(false);
panel1.add(field);
exitButton = new JButton("Exit");
exitButton.addActionListener(bl);
exitButton.setToolTipText("Exit the program.");
panel1.add(exitButton);
this.add(panel1);
this.setVisible(true);
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == buttonConvert)
{
if(e.getSource() == ("C to F"))
{
double tempEntered = Double.parseDouble(textAmount.getText());
double tempConverted = tempEntered - 32 * (5/9);
String tempAmount = (Double.toString(tempConverted));
field.setText(tempAmount);
}
else if(e.getSource() == ("F to C"))
{
double tempEntered = Double.parseDouble(textAmount.getText());
double tempConverted = tempEntered * (9/5) + 32;
String tempAmount = (String.format("%.2f",(tempConverted)));
field.setText(tempAmount);
}
}
else if(e.getSource() == exitButton)
{
System.exit(0);
}
}
}
}
編集:私は両方の提案を試してみましたが、それらの両方で、私は相互作用ペインにこれを取得数で入力して変換しようとすると:スレッド「AWT-EventQueueの-0」java.langの例外を。 ClassCastExceptionが発生:javax.swing.JButtonのは、イベントの「ソース」はコンポーネントではなく、文字列であるjavax.swing.JComboBoxの
あなたの提案で自分のコードを編集しましたが、変換しようとするとたくさんの赤いテキストが表示され、JButtonをjavax.swing.JComboBoxにキャストすることはできません。 例外:スレッド「AWT-EventQueue-0」の例外java.lang.ClassCastException:javax.swing.JButtonをjavax.swing.JComboBoxにキャストできません –
@DylanHayesは編集を参照してください。 – camickr
ありがとうございました。私はインスタンス変数を追加するようにボタンを保持する必要があったし、それは働いた。 –