problème avec un JFormattedTextField vide
Bonjour,
Je me présente brièvement vus que je suis nouveau ici, alors voila je m'appelle Bazin Jérémy, 18 ans et en terminal en section science informatique.
Je vous exposes mon problème :
Je débute en Java et je me suis lancé dans un petit programme qui permet de résoudre des équations du seconds degrés, mais aussi et quant même celle du premier degré.
Mon programme va très bien, sauf lorsque l'on ne rentre pas de variable, là c'est le gros bug ! C'est noël dans éclipses avec toutes les erreurs qui s'affichent !
Donc j'aurais aimé savoir s'il était possible de soit mettre une variable par défaut, mais que l'on ne peut pas voir ( et donc que l'on ne peut pas effacer pour de nouveau ne plus avoir de variable ), ou comment faire un "if" sans avoir quelque chose dans ma variable :roll:
Bon voila mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Fenetre extends JFrame {
private JMenuBar menuBar = new JMenuBar();
private JMenu test1 = new JMenu("Fichier");
private JPanel container = new JPanel();
private JFormattedTextField jtf = new JFormattedTextField(NumberFormat.getIntegerInstance());
private JFormattedTextField jtf2 = new JFormattedTextField(NumberFormat.getIntegerInstance());
private JFormattedTextField jtf3 = new JFormattedTextField(NumberFormat.getIntegerInstance());
private JLabel label = new JLabel("<html><center><i> Veuillez entrer une Equation du second degré ci-dessous :</i><br>"+"<br><br><br></center></html>");
private JLabel labe2 = new JLabel("x² + ");
private JLabel labe3 = new JLabel("x + ");
private JLabel labe4 = new JLabel(" = 0");
private JLabel labe5 = new JLabel("");
private JLabel labe6 = new JLabel("<html><center><br><br><br>Réponse :<br><br>"+"</center></html>");
private JButton b = new JButton ("Calculer");
private JMenuItem item2 = new JMenuItem("Quitter");
public Fenetre(){
this.setTitle("::Equation facile::");
this.setSize(426, 390);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
item2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
this.test1.add(item2);
this.menuBar.add(test1);
this.setJMenuBar(menuBar);
container.setBackground(Color.black);
container.setLayout(new BorderLayout());
JPanel top = new JPanel();
Font police = new Font("Arial", Font.ITALIC, 14);
jtf.setFont(police);
jtf.setPreferredSize(new Dimension(80, 30));
jtf.setForeground(Color.black);
jtf2.setFont(police);
jtf2.setPreferredSize(new Dimension(80, 30));
jtf2.setForeground(Color.black);
jtf3.setFont(police);
jtf3.setPreferredSize(new Dimension(80, 30));
jtf3.setForeground(Color.black);
b.addActionListener(new BoutonListener());
top.add(label);
top.add(jtf);
top.add(labe2);
top.add(jtf2);
top.add(labe3);
top.add(jtf3);
top.add(labe4);
top.add(b);
top.add(labe5);
top.add(labe6);
this.setUndecorated(false);
this.setContentPane(top);
this.setVisible(true);
}
class BoutonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
int result = Integer.valueOf(jtf2.getText())*Integer.valueOf(jtf2.getText());
result = (result) - 4*(Integer.valueOf(jtf.getText()))*(Integer.valueOf(jtf3.getText()));
//4 2 0
if(result < 0){
labe5.setText("<html><center><br><br><br>Le delta est négatif, il n'y à alors pas de racine<br><font color=\"#C0C0C0\">_______________________________________________________________________________________________________________________________</font>");
labe6.setText("");
}
else if(result > 0 && (Integer.valueOf(jtf.getText())!= 0) && (Integer.valueOf(jtf2.getText())!= 0)){
double racine = Math.sqrt(result);
double result1 = ((Integer.valueOf(jtf2.getText())*-1)+ racine) / (2*Integer.valueOf(jtf.getText()));
double result2 = ((Integer.valueOf(jtf2.getText())*-1)- racine) / (2*Integer.valueOf(jtf.getText()));
labe5.setText("<html><center><br><br><br>Le deltat est :<br><font color=\"#C0C0C0\">_______________________________________________________________________________________________________________________________</font><br><font color=\"#00669\">"+result+"</font><br>--------------<br><br>Les racines sont :<br><font color=\"#C0C0C0\">_______________________________________________________________________________________________________________________________</font><br><font color=\"#CC0000\">"+result1+"<br> et <br>"+result2+"</font><br>--------------</center></html>");
labe6.setText("");
}
else if(result == 0 && (Integer.valueOf(jtf.getText())!= 0)&& (Integer.valueOf(jtf2.getText())!= 0)){
double result3 = (Float.valueOf(jtf2.getText())*-1) / (2*Float.valueOf(jtf.getText()));
labe5.setText("<html><center><br><br><br>Le deltat est :<br><font color=\"#C0C0C0\">_______________________________________________________________________________________________________________________________</font><br><font color=\"#00669\">"+result+"</font><br>--------------<br><br>La racine est :<br><font color=\"#C0C0C0\">_______________________________________________________________________________________________________________________________</font><br><font color=\"#CC0000\">"+result3+"</font><br>--------------</center></html>");
labe6.setText("");
}
else if((Integer.valueOf(jtf.getText())== 0) && (Integer.valueOf(jtf2.getText())!= 0)){
double result3 = (Float.valueOf(jtf3.getText())*-1) / (Float.valueOf(jtf2.getText()));
labe5.setText("<html><center><br><br><br>Equation du premier degré<br><font color=\"#C0C0C0\">_______________________________________________________________________________________________________________________________</font>"+"<br>La racine est :<br><font color=\"#C0C0C0\">_______________________________________________________________________________________________________________________________</font><br><font color=\"#CC0000\">"+result3+"</font><br>--------------</center></html>");
labe6.setText("");
}
else{
JOptionPane.showMessageDialog(null, "Impossible, veuillez rentrer une equation correcte", "Reponse", JOptionPane.INFORMATION_MESSAGE);
}
}
}
} |
Voilà, je vous remercie d'avance.
Cordialement Bazin (Im-rainmaker) Jérémy