SoftDeath Posted March 26, 2009 Share Posted March 26, 2009 Salut J'ai essayé d'améliorer un programme déjà réaliser mais minimal je l'ai améliorer en y incluant de nouvelles fonctions tells que le Sinus, Cosinus ... Mais le blem c'est que ces dernières ne veulent pas fonctionner, peut être qu'il y a des personnes compétentes dans ce domaines, qui pourraient m'aider merci : 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 javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class Calculatrice extends JFrame { private JPanel container = new JPanel(); String[] tab_string = {"SIN","COS","TAN","x^y","abs","1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ".", "=", "C", "+", "-", "*", "/"}; JButton[] tab_button = new JButton[tab_string.length]; private JLabel ecran = new JLabel(); private Dimension dim = new Dimension(50, 40); private Dimension dim2 = new Dimension(50, 31); private double chiffre1; private boolean clicOperateur = false, update = false; private boolean clicScientifique = false; private String operateur = "", scientifiques = ""; public Calculatrice(){ this.setSize(340, 260); this.setTitle("Calculette"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setResizable(false); initComposant(); this.setContentPane(container); this.setVisible(true); } private void initComposant(){ Font police = new Font("Arial", Font.BOLD, 20); ecran = new JLabel("0"); ecran.setFont(police); ecran.setHorizontalAlignment(JLabel.RIGHT); ecran.setPreferredSize(new Dimension(220, 20)); JPanel operateur = new JPanel(); operateur.setPreferredSize(new Dimension(55, 225)); JPanel scientifique = new JPanel(); scientifique.setPreferredSize(new Dimension(55, 225)); JPanel chiffre = new JPanel(); chiffre.setPreferredSize(new Dimension(165, 225)); JPanel panEcran = new JPanel(); panEcran.setPreferredSize(new Dimension(220, 30)); for(int i = 0; i < tab_string.length; i++) { tab_button = new JButton(tab_string); tab_button.setPreferredSize(dim); switch(i){ case 0: tab_button.addActionListener(new SINListener()); scientifique.add(tab_button); tab_button.setPreferredSize(dim2); break; case 1: tab_button.addActionListener(new COSListener()); scientifique.add(tab_button); tab_button.setPreferredSize(dim2); break; case 2: tab_button.addActionListener(new TANListener()); scientifique.add(tab_button); tab_button.setPreferredSize(dim2); break; case 3: tab_button.addActionListener(new POWListener()); scientifique.add(tab_button); tab_button.setPreferredSize(dim2); break; case 4: tab_button.addActionListener(new ABSListener()); tab_button.setPreferredSize(dim2); scientifique.add(tab_button); break; case 16 : tab_button.addActionListener(new EgalListener()); chiffre.add(tab_button); break; case 17 : tab_button.setForeground(Color.red); tab_button.addActionListener(new ResetListener()); operateur.add(tab_button); break; case 18 : tab_button.addActionListener(new PlusListener()); tab_button.setPreferredSize(dim2); operateur.add(tab_button); break; case 19 : tab_button.addActionListener(new MoinsListener()); tab_button.setPreferredSize(dim2); operateur.add(tab_button); break; case 20 : tab_button.addActionListener(new MultiListener()); tab_button.setPreferredSize(dim2); operateur.add(tab_button); break; case 21 : tab_button.addActionListener(new DivListener()); tab_button.setPreferredSize(dim2); operateur.add(tab_button); break; default : chiffre.add(tab_button); tab_button.addActionListener(new ChiffreListener()); break; } } panEcran.add(ecran); panEcran.setBorder(BorderFactory.createLineBorder(Color.black)); container.add(panEcran, BorderLayout.NORTH); container.add(chiffre, BorderLayout.CENTER); container.add(operateur, BorderLayout.EAST); container.add(scientifique, BorderLayout.WEST); } private void calcul(){ if(operateur.equals("+")) { chiffre1 = chiffre1 + Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); } if(operateur.equals("-")) { chiffre1 = chiffre1 - Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); } if(operateur.equals("*")) { chiffre1 = chiffre1 * Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); } if(operateur.equals("/")) { try{ chiffre1 = chiffre1 / Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); }catch(ArithmeticException e){ ecran.setText("0"); } } if(scientifiques.equals("SIN")) { chiffre1 = Math.sin(Double.valueOf(ecran.getText()).doubleValue()); ecran.setText(String.valueOf(chiffre1)); } if(scientifiques.equals("COS")) { chiffre1 = Math.cos(Double.valueOf(ecran.getText()).doubleValue()); ecran.setText(String.valueOf(chiffre1)); } if(scientifiques.equals("TAN")) { chiffre1 = Math.tan(Double.valueOf(ecran.getText()).doubleValue()); ecran.setText(String.valueOf(chiffre1)); } if(scientifiques.equals("x^y")) { chiffre1 = Math.pow(chiffre1, Double.valueOf(ecran.getText()).doubleValue()); ecran.setText(String.valueOf(chiffre1)); } if(scientifiques.equals("abs")) { chiffre1 = Math.abs(Double.valueOf(ecran.getText()).doubleValue()); ecran.setText(String.valueOf(chiffre1)); } } class ChiffreListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { String str = ((JButton)e.getSource()).getText(); if(update) { update = false; } else { if(!ecran.getText().equals("0")) str = ecran.getText() + str; } ecran.setText(str); } } class EgalListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { calcul(); update = true; clicOperateur = false; clicScientifique = false; } } class PlusListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicOperateur) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicOperateur = true; } operateur = "+"; update = true; } } class MoinsListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicOperateur) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicOperateur = true; } operateur = "-"; update = true; } } class MultiListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicOperateur) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicOperateur = true; } operateur = "*"; update = true; } } class DivListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicOperateur) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicOperateur = true; } operateur = "/"; update = true; } } class SINListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicScientifique) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicScientifique = true; } operateur = "SIN"; update = true; } } class COSListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicScientifique) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicScientifique = true; } operateur = "COS"; update = true; } } class TANListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicScientifique) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicScientifique = true; } operateur = "TAN"; update = true; } } class POWListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicScientifique) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicScientifique = true; } operateur = "x^y"; update = true; } } class ABSListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { if(clicScientifique) { calcul(); ecran.setText(String.valueOf(chiffre1)); } else { chiffre1 = Double.valueOf(ecran.getText()).doubleValue(); clicScientifique = true; } operateur = "abs"; update = true; } } class ResetListener implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) { clicOperateur = false; update = true; chiffre1 = 0; operateur = ""; scientifiques = ""; clicScientifique = false; ecran.setText(""); } } } Link to comment Share on other sites More sharing options...
Chuck Posted March 27, 2009 Share Posted March 27, 2009 J'ai beau chercher...je vois pas ou t'as vu qu'on faisait les devoirs des autres ici. Hein? comment ? Tu demandes pas qu'on te fasse ton devoir ? Ha...mais juste qu'on le fasse marcher... Allez au boulot ! Link to comment Share on other sites More sharing options...
Recommended Posts