Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Le nombre de visite :
Etude de Java, exemple une calculatrice scientifique

Calculatrice java qui peut être améliorée en adjoignant le sin cos exp et puissance.

/* réalisation Dennai M.*/ 


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class calculateur extends JFrame implements ActionListener {
 
    private JTextField consol;
    private double temp, temp1, result, a;
    private static double m1;
    private int k = 1, x = 0, y = 0, z = 0;
    private char operation;
    private JButton one, two, three, four, five, six, seven, eight, nine, zero, clr, pow2, pow3, exp;
    private JButton plus, min, div, lg, rec, mul, eq, plmi, poin, mr, mc, mp, mm, sqrt, sin, cos, tan;
    private JMenuBar bar;
    private JMenu view;
    private JMenuItem exit;
    private JRadioButtonMenuItem standard, scientific;
    private JSeparator jp;
    private ButtonGroup bg;
    private Container container;
    private JPanel syntpanel, buttonpanel;
 
   
    public calculator() {
        container = getContentPane();
        container.setLayout(new BorderLayout());
        JPanel textpanel = new JPanel();
        Font font = new Font("Arial", Font.PLAIN, 18);
        consol = new JTextField(25);
        consol.setFont(font);
        consol.setHorizontalAlignment(SwingConstants.RIGHT);
        consol.addKeyListener(new KeyAdapter() {
 
            public void keyTyped(KeyEvent keyevent) {
                char c = keyevent.getKeyChar();
                if (c >= '0' && c <= '9') {
                } else {
                    keyevent.consume();
                }
            }
        });
        textpanel.add(consol);
        buttonpanel = new JPanel();
        buttonpanel.setLayout(new GridLayout(5, 4, 2, 2));
        boolean t = true;
        syntpanel = new JPanel();
        syntpanel.setLayout(new GridLayout(5, 1));
        bar = new JMenuBar();
        view = new JMenu("Mode");
 
        standard = new JRadioButtonMenuItem("Simple", true);
        standard.setMnemonic('S');
        standard.addItemListener(new radiohandler());
        scientific = new JRadioButtonMenuItem("Scientifique");
        standard.setMnemonic('c');
        scientific.addItemListener(new radiohandler());
        jp = new JSeparator();
        exit = new JMenuItem("Quitter");
        standard.setMnemonic('E');
        exit.addActionListener(this);
        bg = new ButtonGroup();
        bg.add(standard);
        bg.add(scientific);
        view.add(standard);
        view.add(scientific);
        view.add(jp);
        view.add(exit);
        bar.add(view);
        setJMenuBar(bar);
 
        mr = new JButton("MR");
        buttonpanel.add(mr);
        mr.addActionListener(this);
        seven = new JButton("7");
        buttonpanel.add(seven);
        seven.addActionListener(this);
        eight = new JButton("8");
        buttonpanel.add(eight);
        eight.addActionListener(this);
        nine = new JButton("9");
        buttonpanel.add(nine);
        nine.addActionListener(this);
        clr = new JButton("AC");
        buttonpanel.add(clr);
        clr.addActionListener(this);
 
        mc = new JButton("MC");
        buttonpanel.add(mc);
        mc.addActionListener(this);
        four = new JButton("4");
        buttonpanel.add(four);
        four.addActionListener(this);
        five = new JButton("5");
        buttonpanel.add(five);
        five.addActionListener(this);
        six = new JButton("6");
        buttonpanel.add(six);
        six.addActionListener(this);
        mul = new JButton("*");
        buttonpanel.add(mul);
        mul.addActionListener(this);
 
        mp = new JButton("M+");
        buttonpanel.add(mp);
        mp.addActionListener(this);
        one = new JButton("1");
        buttonpanel.add(one);
        one.addActionListener(this);
        two = new JButton("2");
        buttonpanel.add(two);
        two.addActionListener(this);
        three = new JButton("3");
        buttonpanel.add(three);
        three.addActionListener(this);
        min = new JButton("-");
        buttonpanel.add(min);
        min.addActionListener(this);
 
        mm = new JButton("M-");
        buttonpanel.add(mm);
        mm.addActionListener(this);
        zero = new JButton("0");
        buttonpanel.add(zero);
        zero.addActionListener(this);
        plmi = new JButton("+/-");
        buttonpanel.add(plmi);
        plmi.addActionListener(this);
        poin = new JButton(".");
        buttonpanel.add(poin);
        poin.addActionListener(this);
        plus = new JButton("+");
        buttonpanel.add(plus);
        plus.addActionListener(this);
 
 
        rec = new JButton("1/x");
        buttonpanel.add(rec);
        rec.addActionListener(this);
        sqrt = new JButton("Sqrt");
        buttonpanel.add(sqrt);
        sqrt.addActionListener(this);
        lg = new JButton("log");
        buttonpanel.add(lg);
        lg.addActionListener(this);
        div = new JButton("/");
        div.addActionListener(this);
        buttonpanel.add(div);
        eq = new JButton("=");
        buttonpanel.add(eq);
        eq.addActionListener(this);
 
        sin = new JButton("SIN");
        syntpanel.add(sin);
        sin.addActionListener(this);
        cos = new JButton("COS");
        syntpanel.add(cos);
        cos.addActionListener(this);
        tan = new JButton("TAN");
        syntpanel.add(tan);
        tan.addActionListener(this);
        pow2 = new JButton("x^2");
        syntpanel.add(pow2);
        pow2.addActionListener(this);
        pow3 = new JButton("x^3");
        syntpanel.add(pow3);
        pow3.addActionListener(this);
        exp = new JButton("Exp");
        exp.addActionListener(this);
 
        container.add("Center", buttonpanel);
        container.add("North", textpanel);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
 
    /**
     * Evenement sur la sélection d'un element dans le menu
     */
    class radiohandler implements ItemListener {
 
        public void itemStateChanged(ItemEvent ie) {
            AbstractButton button = (AbstractButton) ie.getItem();
            String label = button.getText();
            {
                if (label.equals("Simple")) {
                    container.remove(syntpanel);
                    validate();
                }
                if (label.equals("Scientifique")) {
                    container.add("West", syntpanel);
                    validate();
                }
            }
        }
    }
 
 /* réalisation Dennai M.*/ 


    public void actionPerformed(ActionEvent e) {
        String s = e.getActionCommand();
        if (s.equals("Quitter")) {
            System.exit(0);
        }
        if (s.equals("1")) {
            if (z == 0) {
                consol.setText(consol.getText() + "1");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "1");
                z = 0;
            }
        }
        if (s.equals("2")) {
            if (z == 0) {
                consol.setText(consol.getText() + "2");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "2");
                z = 0;
            }
        }
        if (s.equals("3")) {
            if (z == 0) {
                consol.setText(consol.getText() + "3");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "3");
                z = 0;
            }
        }
        if (s.equals("4")) {
            if (z == 0) {
                consol.setText(consol.getText() + "4");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "4");
                z = 0;
            }
        }
        if (s.equals("5")) {
            if (z == 0) {
                consol.setText(consol.getText() + "5");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "5");
                z = 0;
            }
        }
        if (s.equals("6")) {
            if (z == 0) {
                consol.setText(consol.getText() + "6");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "6");
                z = 0;
            }
        }
        if (s.equals("7")) {
            if (z == 0) {
                consol.setText(consol.getText() + "7");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "7");
                z = 0;
            }
        }
        if (s.equals("8")) {
            if (z == 0) {
                consol.setText(consol.getText() + "8");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "8");
                z = 0;
            }
        }
        if (s.equals("9")) {
            if (z == 0) {
                consol.setText(consol.getText() + "9");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "9");
                z = 0;
            }
        }
        if (s.equals("0")) {
            if (z == 0) {
                consol.setText(consol.getText() + "0");
            } else {
                consol.setText("");
                consol.setText(consol.getText() + "0");
                z = 0;
            }
        }
        if (s.equals("AC")) {
            consol.setText("");
            x = 0;
            y = 0;
            z = 0;
        }
        if (s.equals("log")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.log(Double.parseDouble(consol.getText()));
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("1/x")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = 1 / Double.parseDouble(consol.getText());
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("Exp")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.exp(Double.parseDouble(consol.getText()));
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("x^2")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.pow(Double.parseDouble(consol.getText()), 2);
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("x^3")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.pow(Double.parseDouble(consol.getText()), 3);
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("+/-")) {
            if (x == 0) {
                consol.setText("-" + consol.getText());
                x = 1;
            } else {
                consol.setText(consol.getText());
            }
        }
        if (s.equals(".")) {
            if (y == 0) {
                consol.setText(consol.getText() + ".");
                y = 1;
            } else {
                consol.setText(consol.getText());
            }
        }
        if (s.equals("+")) {
            if (consol.getText().equals("")) {
                consol.setText("");
                temp = 0;
                operation = '+';
            } else {
                temp = Double.parseDouble(consol.getText());
                consol.setText("");
                operation = '+';
                y = 0;
                x = 0;
            }
            consol.requestFocus();
        }
        if (s.equals("-")) {
            if (consol.getText().equals("")) {
                consol.setText("");
                temp = 0;
                operation = '-';
            } else {
                x = 0;
                y = 0;
                temp = Double.parseDouble(consol.getText());
                consol.setText("");
                operation = '-';
            }
            consol.requestFocus();
        }
        if (s.equals("/")) {
            if (consol.getText().equals("")) {
                consol.setText("");
                temp = 1;
                operation = '/';
            } else {
                x = 0;
                y = 0;
                temp = Double.parseDouble(consol.getText());
                operation = '/';
                consol.setText("");
            }
            consol.requestFocus();
        }
        if (s.equals("*")) {
            if (consol.getText().equals("")) {
                consol.setText("");
                temp = 1;
                operation = '*';
            } else {
                x = 0;
                y = 0;
                temp = Double.parseDouble(consol.getText());
                operation = '*';
                consol.setText("");
            }
            consol.requestFocus();
        }
        if (s.equals("MC")) {
            m1 = 0;
            consol.setText("");
        }
        if (s.equals("MR")) {
            consol.setText("");
            consol.setText(consol.getText() + m1);
        }
        if (s.equals("M+")) {
            if (k == 1) {
                m1 = Double.parseDouble(consol.getText());
                k++;
            } else {
                m1 += Double.parseDouble(consol.getText());
                consol.setText("" + m1);
            }
        }
        if (s.equals("M-")) {
            if (k == 1) {
                m1 = Double.parseDouble(consol.getText());
                k++;
            } else {
                m1 -= Double.parseDouble(consol.getText());
                consol.setText("" + m1);
            }
        }
        if (s.equals("Sqrt")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.sqrt(Double.parseDouble(consol.getText()));
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("SIN")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.sin(Double.parseDouble(consol.getText()));
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("COS")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.cos(Double.parseDouble(consol.getText()));
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("TAN")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                a = Math.tan(Double.parseDouble(consol.getText()));
                consol.setText("");
                consol.setText(consol.getText() + a);
            }
        }
        if (s.equals("=")) {
            if (consol.getText().equals("")) {
                consol.setText("");
            } else {
                temp1 = Double.parseDouble(consol.getText());
                switch (operation) {
                    case '+':
                        result = temp + temp1;
                        break;
                    case '-':
                        result = temp - temp1;
                        break;
                    case '/':
                        result = temp / temp1;
                        break;
                    case '*':
                        result = temp * temp1;
                        break;
                }
                consol.setText("");
                consol.setText(consol.getText() + result);
                z = 1;
            }
        }
        consol.requestFocus();
    }
 
    /**
     * Exemple
     * @param args
     */
    public static void main(String args[]) {
        calculator n = new calculator();
        n.setTitle("Calculatrice scientifique");
        n.setSize(370, 250);
        n.setResizable(false);
        n.setVisible(true);
    }
}

Vous pouvez intégrer une calculatrice graphique à l'aide de l'applet suivante :

/* réalisation Dennai M.*/ 


import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class ArcTest extends Applet {
    ArcControls controls;   // The controls for marking and filling arcs
    ArcCanvas canvas;       // The drawing area to display arcs

    public void init() {
    setLayout(new BorderLayout());
    canvas = new ArcCanvas();
    add("Center", canvas);
    add("South", controls = new ArcControls(canvas));
    }

    public void destroy() {
        remove(controls);
        remove(canvas);
    }

    public void start() {
    controls.setEnabled(true);
    }

    public void stop() {
    controls.setEnabled(false);
    }

    public void processEvent(AWTEvent e) {
        if (e.getID() == Event.WINDOW_DESTROY) {
            System.exit(0);
        }
    }

    public static void main(String args[]) {
    Frame f = new Frame("ArcTest");
    ArcTest    arcTest = new ArcTest();

    arcTest.init();
    arcTest.start();

    f.add("Center", arcTest);
    f.setSize(300, 300);
    f.show();
    }

    public String getAppletInfo() {
        return "An interactive test of the Graphics.drawArc and \nGraphics.fillArc routines. Can be run \neither as a standalone application by typing 'java ArcTest' \nor as an applet in the AppletViewer.";
    }
}

class ArcCanvas extends Canvas {
    int        startAngle = 0;
    int        endAngle = 45;
    boolean    filled = false;
    Font    font;

    public void paint(Graphics g) {
    Rectangle r = getBounds();
    int hlines = r.height / 10;
    int vlines = r.width / 10;

    g.setColor(Color.pink);
    for (int i = 1; i <= hlines; i++) {
        g.drawLine(0, i * 10, r.width, i * 10);
    }
    for (int i = 1; i <= vlines; i++) {
        g.drawLine(i * 10, 0, i * 10, r.height);
    }

    g.setColor(Color.red);
    if (filled) {
        g.fillArc(0, 0, r.width - 1, r.height - 1, startAngle, endAngle);
    } else {
        g.drawArc(0, 0, r.width - 1, r.height - 1, startAngle, endAngle);
    }

    g.setColor(Color.black);
    g.setFont(font);
    g.drawLine(0, r.height / 2, r.width, r.height / 2);
    g.drawLine(r.width / 2, 0, r.width / 2, r.height);
    g.drawLine(0, 0, r.width, r.height);
    g.drawLine(r.width, 0, 0, r.height);
    int sx = 10;
    int sy = r.height - 28;
    g.drawString("S = " + startAngle, sx, sy);
    g.drawString("E = " + endAngle, sx, sy + 14);
    }

    public void redraw(boolean filled, int start, int end) {
    this.filled = filled;
    this.startAngle = start;
    this.endAngle = end;
    repaint();
    }
}

class ArcControls extends Panel
                  implements ActionListener {
    TextField s;
    TextField e;
    ArcCanvas canvas;

    public ArcControls(ArcCanvas canvas) {
    Button b = null;

    this.canvas = canvas;
    add(s = new TextField("0", 4));
    add(e = new TextField("45", 4));
    b = new Button("Fill");
    b.addActionListener(this);
    add(b);
    b = new Button("Draw");
    b.addActionListener(this);
    add(b);
    }

    public void actionPerformed(ActionEvent ev) {
    String label = ev.getActionCommand();

    canvas.redraw(label.equals("Fill"),
                  Integer.parseInt(s.getText().trim()),
                  Integer.parseInt(e.getText().trim()));

    }
}

Vous pouvez aussi utiliser l'applet suivante en l'intégrant au premier programme :

 

/* réalisation Dennai M.*/ 

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Exercise13_12 extends JFrame {
public Exercise13_12() {
setLayout(new BorderLayout());
add(new DrawSine(), BorderLayout.CENTER);
}
public static void main(String[] args) {
Exercise13_12 frame = new Exercise13_12();
frame.setSize(400, 300);
frame.setTitle("Applet représenation des fonction trigo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
class DrawSine extends JPanel {
double f(double x) {
return Math.sin(x);
}
double gCos(double y) {
return Math.cos(y);
}

double gtan(double y) {
return Math.tan(y);
}


protected void paintComponent(Graphics g) 
{
super.paintComponent(g);
g.drawLine(10, 100, 380, 100);
g.drawLine(200, 30, 200, 190);
g.drawLine(380, 100, 370, 90);
g.drawLine(380, 100, 370, 110);
g.drawLine(200, 30, 190, 40);
g.drawLine(200, 30, 210, 40);
g.drawString("X", 360, 80);
g.drawString("Y", 220, 40);
Polygon p = new Polygon();
Polygon p2 = new Polygon();
for (int x = -100; x <= 100; x++) {
p.addPoint(x + 200, 100 - (int) (50 * f((x / 100.0) * 2
* Math.PI)));
}
for (int x = -100; x <= 100; x++) {
p2.addPoint(x + 200, 100 - (int) (50 * gCos((x / 100.0) * 2
* Math.PI)));
}

for (int x = -100; x <= 100; x++) {
p2.addPoint(x + 200, 100 - (int) (50 * gtan((x / 100.0) * 2
* Math.PI)));
}

g.setColor(Color.red);
g.drawPolyline(p.xpoints, p.ypoints, p.npoints);
g.drawString("-2\u03c0", 95, 115);
g.drawString("2\u03c0", 305, 115);
g.drawString("0", 200, 115);
g.setColor(Color.blue);
g.drawPolyline(p2.xpoints, p2.ypoints, p2.npoints);
}
}
}

 

jAVA ET EXCEL :

/* réalisation Dennai M.*/ 

import javax.swing.table.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
class JTableToExcel extends JFrame
{
  //Header de JTable 
  String[] columns = new String[] {
        "Id",
        "Nom", 
        "Adresse", 
        "Taux horaire", 
  };
  //données pour JTable dans un tableau 2D
  Object[][] data = new Object[][] {
        {1, "Thomas", "Paris", 20.0 },
        {2, "Jean", "Marseille", 50.0 },
        {3, "Yohan", "Lyon", 30.0 },
        {4, "Emily", "Toulouse", 60.0 },
        {5, "Alex", "Nice", 10.0 },
        {6, "Nicolas", "Lille", 11.5 },
  };
 
  //crée un JTable avec des données
  JTable table = new JTable(data, columns);
  JPanel panel = new JPanel(new BorderLayout());
  JButton btn = new JButton("Export");
  public JTableToExcel(){
    setSize(450,200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setTitle("Exporter JTable en Excel");
    panel.add(btn, BorderLayout.SOUTH);
    panel.add(new JScrollPane(table), BorderLayout.NORTH);
    add(panel);
    setVisible(true);
    btn.addActionListener(new MyListener());
  }
  public void export(JTable table, File file){
    try
    {
      TableModel m = table.getModel();
      FileWriter fw = new FileWriter(file);
      for(int i = 0; i < m.getColumnCount(); i++){
        fw.write(m.getColumnName(i) + "\t");
      }
      fw.write("\n");
      for(int i=0; i < m.getRowCount(); i++) {
        for(int j=0; j < m.getColumnCount(); j++) {
          fw.write(m.getValueAt(i,j).toString()+"\t");
        }
        fw.write("\n");
      }
      fw.close();
    }
    catch(IOException e){ System.out.println(e); }
  }
  public static void main(String[] args){
        new JTableToExcel();
  }
  class MyListener implements ActionListener{
      public void actionPerformed(ActionEvent e){
         if(e.getSource() == btn){
           JFileChooser fchoose = new JFileChooser();
           int option = fchoose.showSaveDialog(JTableToExcel.this);
           if(option == JFileChooser.APPROVE_OPTION){
             String name = fchoose.getSelectedFile().getName(); 
             String path = fchoose.getSelectedFile().getParentFile().getPath();
             String file = path + "\\" + name + ".xls"; 
             export(table, new File(file));
           }
         }
      }
  }
}

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :