Bonsoir à tous,
j'ai créé une mini calculette faisant 4 opérations : +, -, *, /.
J'aimerais savoir quelles sont les méthodes permettant à l'utilisateur de redimensionner la fenêtre ?
Voici mon code :
Cliquez pour afficherCode:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CalculatriceElementaire extends JFrame implements ActionListener{ //Déclaration des éléments présents dans la fenêtre JLabel operande1 = new JLabel ("Opérande 1:"); JLabel operande2 = new JLabel ("Opérande 2:"); JLabel resultat = new JLabel ("Résultat de l'opération : "); JTextField nb1 = new JTextField(8); JTextField nb2 = new JTextField(8); JTextField nbres = new JTextField(30); JButton addition = new JButton("Addition (+)"); JButton soustraction = new JButton("Soustraction (-)"); JButton multiplication = new JButton("Multiplication (x)"); JButton division = new JButton("Divison (/)"); public CalculatriceElementaire() // constructeur { /* Caractéristiques de la fenêtre */ super("Calculatrice Elementaire"); setSize(600,200); setDefaultCloseOperation(EXIT_ON_CLOSE); setResizable(false); JPanel panel = (JPanel)getContentPane(); FlowLayout flo = new FlowLayout(FlowLayout.CENTER,20,20); panel.setLayout(flo); panel.setBackground(Color.LIGHT_GRAY); /* Caractéristiques de la première ligne : deux boutons et deux zones de texte */ JPanel premiereligne = new JPanel(); premiereligne.add(operande1); premiereligne.add(nb1); premiereligne.add(operande2); premiereligne.add(nb2); panel.add(premiereligne); premiereligne.setOpaque(false); /* Caractéristiques de la seconde ligne : un bouton et une zone de texte */ JPanel deuxiemeligne = new JPanel(); deuxiemeligne.add(resultat); deuxiemeligne.add(nbres); panel.add(deuxiemeligne); deuxiemeligne.setOpaque(false); /* Caractéristiques de la dernière ligne : 4 boutons pour les différentes * opérations disponibles. */ JPanel lignechoix = new JPanel(); addition.addActionListener(this); soustraction.addActionListener(this); multiplication.addActionListener(this); division.addActionListener(this); lignechoix.add(addition); lignechoix.add(soustraction); lignechoix.add(multiplication); lignechoix.add(division); panel.add(lignechoix); lignechoix.setOpaque(false); nb1.selectAll(); nb1.requestFocus(); nb2.selectAll(); nb2.requestFocus(); nbres.setFocusable(false); nbres.setEditable(false); } @Override public void actionPerformed(ActionEvent evenement) { double a=0; double b=0; String ch1=nb1.getText(); String ch2=nb2.getText(); boolean calcul_valide=true; int nbPoints=0; for (int i=0; i<ch1.length();i++) // On teste les données entrées pour la première opérande { if(".".contains(String.valueOf(Character.toLowerCase(ch1.charAt(i))))) nbPoints++; if(!".0123456789".contains(String.valueOf(Character.toLowerCase(ch1.charAt(i)))) || nbPoints > 1) { nbres.setText("ERREUR : format de nombre non valide"); calcul_valide=false; } } nbPoints=0; for (int i=0; i<ch2.length();i++) // On teste les données entrées pour la deuxième opérande { if(".".contains(String.valueOf(Character.toLowerCase(ch2.charAt(i))))) nbPoints++; if (!".0123456789".contains(String.valueOf(Character.toLowerCase(ch2.charAt(i)))) || nbPoints > 1) { nbres.setText("ERREUR : format de nombre non valide"); calcul_valide=false; } } if(calcul_valide==true) { try { a=Double.parseDouble(nb1.getText()); b=Double.parseDouble(nb2.getText()); }catch(Exception e) { nbres.setText("ERREUR"); } if(evenement.getSource()==addition) { nbres.setText(String.valueOf(a+b)); } if(evenement.getSource()==soustraction) { nbres.setText(String.valueOf(a-b)); } if(evenement.getSource()==multiplication) { nbres.setText(String.valueOf(a*b)); } if(evenement.getSource()==division) { nbres.setText(String.valueOf(a/b)); } } } public static void main (String[]args) { CalculatriceElementaire c = new CalculatriceElementaire(); c.setLocation(500,500); c.setVisible(true); } }
Merci d'avance, et bonne soirée !
-----