Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Myra WebTools - Calc.java

Calc.java

Caricato da: Ht-never
Scarica il programma completo

  1. // importo packages
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5.  
  6. import Func.Func;
  7.  
  8.  
  9. // classe della finestra principale
  10. @SuppressWarnings("serial")
  11. public class Calc extends JPanel {
  12.    
  13.    boolean equ;
  14.    int opdef = 0, adv = 0;
  15.    float res = 0;
  16.    
  17.    // bottoni base
  18.    JButton button=new JButton("=");
  19.    JButton b1=new JButton("1"); JButton bf=new JButton("Math");
  20.    JButton b2=new JButton("2"); JButton b3=new JButton("3");
  21.    JButton b4=new JButton("4"); JButton b5=new JButton("5");
  22.    JButton b6=new JButton("6"); JButton b7=new JButton("7");
  23.    JButton b8=new JButton("8"); JButton b9=new JButton("9");
  24.    JButton bp=new JButton("+"); JButton bx=new JButton("*");
  25.    JButton bd=new JButton("/"); JButton b0=new JButton("0");
  26.    JButton bm=new JButton("-"); JButton bn=new JButton("C");
  27.    
  28.    // bottoni math
  29.    JButton blog=new JButton("log"); JButton bln=new JButton("ln");
  30.    JButton bcos=new JButton("cos"); JButton bsin=new JButton("sin");
  31.    JButton bpi=new JButton("pi"); JButton be=new JButton("e");
  32.    
  33.    MenuItem aiuto=new MenuItem("Help");
  34.    MenuItem somma=new MenuItem("Somma");
  35.    MenuItem esci=new MenuItem("Esci");
  36.    MenuItem adv1= new MenuItem("Advanced");
  37.    MenuItem bas1 = new MenuItem("Base");
  38.    
  39.    Menu file= new Menu("File");
  40.    Menu help= new Menu("Help");
  41.    
  42.    MenuBar barra = new MenuBar();
  43.    JLabel risultato = new JLabel("*",JLabel.CENTER);
  44.    JTextField t1 = new JTextField();
  45.    JTextField t2 = new JTextField();
  46.    
  47.    public Calc() {
  48.          
  49.      setupEventi();
  50.      setupElementi();
  51.          setLayout(new GridLayout(6,1));
  52.          
  53.          file.add(bas1); file.add(adv1);
  54.      help.add(aiuto); barra.add(file);
  55.      barra.setHelpMenu(help);
  56.      
  57.      // aggiungo elementi
  58.      add(t1); add(b1); add(b2); add(b3); add(b4);
  59.      add(b5); add(b6); add(b7); add(b8); add(b9);
  60.      add(b0); add(bp); add(bm); add(bd); add(bx);
  61.      add(bn); add(button); add(bf);
  62.    
  63.      doLayout();
  64.    }
  65.  
  66.  // metodo main
  67.  public static void Run() {
  68.    Finestramenu frame = new Finestramenu();
  69.    frame.setBounds(10,53,220,300);
  70.    frame.setTitle("Calc++");
  71.    frame.setVisible(true);
  72.  }
  73.  
  74.  // Action Listener del Menu
  75.  class AscoltatoreMenu implements ActionListener {
  76.    public void actionPerformed (ActionEvent e) {
  77.     if(e.getActionCommand().compareTo("Esci")==0) {
  78.         System.exit(0);
  79.     }
  80.     if(e.getActionCommand().compareTo("Help")==0) {
  81.         showHelp();
  82.     }
  83.     if(e.getActionCommand().compareTo("Somma")==0) {
  84.         Somma();
  85.     }
  86.     if(e.getActionCommand().compareTo("1")==0) {
  87.         t1.setText(t1.getText() + Integer.parseInt("1"));
  88.     }
  89.     if(e.getActionCommand().compareTo("2")==0) {
  90.         t1.setText(t1.getText() + Integer.parseInt("2"));
  91.     }
  92.     if(e.getActionCommand().compareTo("3")==0) {
  93.         t1.setText(t1.getText() + Integer.parseInt("3"));
  94.     }
  95.     if(e.getActionCommand().compareTo("4")==0) {
  96.         t1.setText(t1.getText() + Integer.parseInt("4"));
  97.     }
  98.     if(e.getActionCommand().compareTo("5")==0) {
  99.         t1.setText(t1.getText() + Integer.parseInt("5"));
  100.     }
  101.     if(e.getActionCommand().compareTo("6")==0) {
  102.         t1.setText(t1.getText() + Integer.parseInt("6"));
  103.     }
  104.     if(e.getActionCommand().compareTo("7")==0) {
  105.         t1.setText(t1.getText() + Integer.parseInt("7"));
  106.     }
  107.     if(e.getActionCommand().compareTo("8")==0) {
  108.         t1.setText(t1.getText() + Integer.parseInt("8"));
  109.     }
  110.     if(e.getActionCommand().compareTo("9")==0) {
  111.         t1.setText(t1.getText() + Integer.parseInt("9"));
  112.     }
  113.     if(e.getActionCommand().compareTo("0")==0) {
  114.         t1.setText(t1.getText() + Integer.parseInt("0"));
  115.     }
  116.     if(e.getActionCommand().compareTo("+")==0) {
  117.         if(t1.getText().compareTo("")==0) {
  118.                 t1.setText("0");
  119.         }
  120.         opdef = 1;
  121.         res = Float.parseFloat(t1.getText());
  122.         t1.setText("");
  123.         equ = false;
  124.     }
  125.     if(e.getActionCommand().compareTo("*")==0) {
  126.         if(t1.getText().compareTo("")==0) {
  127.                 t1.setText("0");
  128.         }
  129.         opdef = 2;
  130.         res = Float.parseFloat(t1.getText());
  131.         t1.setText("");
  132.         equ = false;
  133.     }
  134.     if(e.getActionCommand().compareTo("/")==0) {
  135.         if(t1.getText().compareTo("")==0) {
  136.                 t1.setText("0");
  137.         }
  138.         opdef = 4;
  139.         res = Float.parseFloat(t1.getText());
  140.         t1.setText("");
  141.         equ = false;
  142.     }
  143.     if(e.getActionCommand().compareTo("-")==0) {
  144.         if(t1.getText().compareTo("")==0) {
  145.                 t1.setText("0");
  146.         }
  147.         opdef = 3;
  148.         res = Float.parseFloat(t1.getText());
  149.         t1.setText("");
  150.         equ = false;
  151.     }
  152.     if(e.getActionCommand().compareTo("=")==0) {
  153.         OperationDo();
  154.     }
  155.     if(e.getActionCommand().compareTo("C")==0) {
  156.         t1.setText("");
  157.         res = 0;
  158.     }
  159.     if(e.getActionCommand().compareTo("Math")==0) {
  160.         setMath();
  161.     }
  162.     if(e.getActionCommand().compareTo("Base")==0) {
  163.         setBase();
  164.     }
  165.     if(e.getActionCommand().compareTo("cos")==0) {
  166.         double cos = Math.cos(Double.parseDouble(t1.getText()));
  167.         cos = Func.RoundDouble(cos, 3);
  168.         t1.setText(Double.toString(cos));
  169.     }
  170.     if(e.getActionCommand().compareTo("sin")==0) {
  171.         double sin = Math.sin(Double.parseDouble(t1.getText()));
  172.         sin = Func.RoundDouble(sin, 3);
  173.         t1.setText(Double.toString(sin));
  174.     }
  175.     if(e.getActionCommand().compareTo("pi")==0) {
  176.         t1.setText("3.14159");
  177.     }
  178.     if(e.getActionCommand().compareTo("e")==0) {
  179.         t1.setText("2,71828");
  180.     }
  181.     if(e.getActionCommand().compareTo("log")==0) {
  182.         double log_temp = Func.DecimalLog(Double.parseDouble(t1.getText()));
  183.         log_temp = Func.RoundDouble(log_temp, 5);
  184.         t1.setText(Double.toString(log_temp));
  185.     }
  186.     if(e.getActionCommand().compareTo("Advanced")==0) {
  187.         setMath();
  188.     }
  189.     if(e.getActionCommand().compareTo("Base")==0) {
  190.         setBase();
  191.     }
  192.    }
  193.  }
  194.  
  195.  // Metodo di aiuto
  196.  public void showHelp() {
  197.          JFrame frame = new JFrame();
  198.          JLabel help_1 = new JLabel("<html>Calc++ Calcoulator" +
  199.                         "<br>by MagicStcik(c) Software<br><br>" +
  200.                         "Questo programma è sotto la<br>licenza" +
  201.                         "<font color='blue'> Creative Commons<br> License" +
  202.                         "</font>", JLabel.CENTER);
  203.          
  204.          help_1.setBounds(0,10,300,20);
  205.          frame.add(help_1);
  206.          frame.setBounds(525,300,220,300);
  207.          frame.setVisible(true);
  208.  }
  209.  
  210.  // setup degli elementi
  211.  public void setupElementi() {
  212.          risultato.setBounds(300,20,300,30);
  213.          t1.setBounds(10,10, 100,40);
  214.          t1.setBackground(Color.gray);
  215.          t2.setBackground(Color.gray);
  216.          button.setSize(40,30);
  217.  }
  218.  
  219.  // sistema di controllo somma
  220.  public void Somma() {
  221.          risultato.setText("+");
  222.  }
  223.  
  224.  public void OperationDo() {
  225.          float temp = Float.parseFloat(t1.getText());
  226.          if(opdef == 1) {
  227.                  temp = res + temp;
  228.          }
  229.          if(opdef == 2) {
  230.                  temp = res * temp;
  231.          }
  232.          if(opdef == 4) {
  233.                  if(equ == false) {
  234.                          temp = res / temp;
  235.                  }
  236.                  else {
  237.                          temp = temp / res;
  238.                  }
  239.          }
  240.          if(opdef == 3) {
  241.                  if(equ == false) {
  242.                          temp = res - temp;
  243.                  }
  244.                  else {
  245.                          temp = temp - res;
  246.                  }
  247.          }
  248.          if(equ == false) {
  249.                  res = Float.parseFloat(t1.getText());
  250.          }
  251.          equ = true;
  252.          t1.setText(Float.toString(temp));
  253.  }
  254.  
  255.  // cambio di layout
  256.  public void setMath() {
  257.          bf.setText("Base");
  258.          addButtonMath();
  259.          setLayout(new GridLayout(8,1));
  260.          doLayout();
  261.  }
  262.  public void setBase() {
  263.          bf.setText("Math");
  264.          removeButtonMath();
  265.          setLayout(new GridLayout(6,1));
  266.          doLayout();
  267.  }
  268.  public void addButtonMath() {
  269.          add(blog); add(bln); add(bcos);
  270.          add(bsin); add(be); add(bpi);
  271.  }
  272.  public void removeButtonMath() {
  273.          remove(blog); remove(bln); remove(bcos);
  274.          remove(bsin); remove(be); remove(bpi);
  275.  }
  276.  
  277.  
  278.  //setup degli ActionListener
  279.  void setupEventi() {
  280.  
  281.    // listener del menu
  282.    aiuto.addActionListener(new AscoltatoreMenu());
  283.    somma.addActionListener(new AscoltatoreMenu());
  284.    esci.addActionListener(new AscoltatoreMenu());
  285.    b1.addActionListener(new AscoltatoreMenu());
  286.    adv1.addActionListener(new AscoltatoreMenu());
  287.    bas1.addActionListener(new AscoltatoreMenu());
  288.  
  289.    // listener dei bottoni
  290.    b2.addActionListener(new AscoltatoreMenu());
  291.    b3.addActionListener(new AscoltatoreMenu());
  292.    b4.addActionListener(new AscoltatoreMenu());
  293.    b5.addActionListener(new AscoltatoreMenu());
  294.    b6.addActionListener(new AscoltatoreMenu());
  295.    b7.addActionListener(new AscoltatoreMenu());
  296.    b8.addActionListener(new AscoltatoreMenu());
  297.    b9.addActionListener(new AscoltatoreMenu());
  298.    b0.addActionListener(new AscoltatoreMenu());
  299.    bp.addActionListener(new AscoltatoreMenu());
  300.    bx.addActionListener(new AscoltatoreMenu());
  301.    bm.addActionListener(new AscoltatoreMenu());
  302.    bd.addActionListener(new AscoltatoreMenu());
  303.    bn.addActionListener(new AscoltatoreMenu());
  304.    bf.addActionListener(new AscoltatoreMenu());
  305.    button.addActionListener(new AscoltatoreMenu());
  306.    
  307.    // listener bottoni math
  308.    blog.addActionListener(new AscoltatoreMenu());
  309.    bln.addActionListener(new AscoltatoreMenu());
  310.    bpi.addActionListener(new AscoltatoreMenu());
  311.    be.addActionListener(new AscoltatoreMenu());
  312.    bcos.addActionListener(new AscoltatoreMenu());
  313.    bsin.addActionListener(new AscoltatoreMenu());
  314.  }
  315. }