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 - Finestramenu.java

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