Je suis très nouveau sur Java et je suis en train de prendre une classe Java 1. J'essaie d'utiliser une sélection JComboBox dans une instruction if et ensuite afficher une réponse basée sur la sélection dans un JTextField. Tout a été compilé correctement mais la réponse ne s'affichera pas et je ne sais pas ce que je dois changer. J'ai cherché et essayé plusieurs choses différentes mais aucune ne semblait fonctionner.La réponse à l'équation ne sera pas transmise à JTextField avec l'utilisation de CoomboBox si statements
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);
}
}
}
}
Edit: j'ai essayé deux suggestions et les deux quand je tape dans un nombre et essayer de convertir je reçois ce dans le volet interactions: Exception dans le thread « AWT-EventQueue-0 » java.lang. ClassCastException: javax.swing.JButton ne peut pas être jeté à javax.swing.JComboBox
J'ai effectué mon code avec votre suggestion et maintenant je reçois beaucoup de texte en rouge lorsque je tente de convertir qui dit DButton ne peut pas être jeté à javax.swing.JComboBox. Voici l'exception: Exception dans le fil "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JButton ne peut pas être converti en javax.swing.JComboBox –
@DylanHayes voir modification. – camickr
Merci beaucoup. J'avais besoin de garder le bouton alors j'ai ajouté la variable d'instance et cela a fonctionné. –