Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as Java by registered user Dieter987 ( 8 years ago )
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventObject;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.*;

public class CalcPanel 

{




static void addComponent( Container cont,
                            GridBagLayout gbl,
                            Component c,
                            int x, int y,
                            int width, int height,
                            double weightx, double weighty )
  {
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.fill = GridBagConstraints.BOTH;
    gbc.gridx = x; gbc.gridy = y;
    gbc.gridwidth = width; gbc.gridheight = height;
    gbc.weightx = weightx; gbc.weighty = weighty;
    gbl.setConstraints( c, gbc );
    cont.add( c );
   
  }
 



public static void main( String[] args )
  {
   
 
    JFrame f = new JFrame();
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    Container c = f.getContentPane();

    GridBagLayout gbl = new GridBagLayout();
    c.setLayout( gbl );
    
    
    JTextField field;
    field = new JTextField();
    
    JButton[] numbers = new JButton[10];
    for(int i = 0; i < numbers.length; i++){
    numbers[i] = new JButton(Integer.toString(i));
    }
    
    JButton sum, sub, div, mult;
    sum = new JButton("+");
    sub = new JButton("-");
    div = new JButton("*");
    mult = new JButton("/");
    
    JButton C;
    C=new JButton("C");
    
    JButton erg;
    erg = new JButton("="); 
    JButton point;
    point =new JButton(".");
    
    
    ActionListener al =new ActionListener(){
     public void actionPerformed(ActionEvent e){
      ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
       String text = ((JButton)e.getSource()).getText();
       field.setText(field.getText()+text);
       
       try {
              // Evaluate the expression
              Object result = engine.eval&#40;field.getText(&#41;);
              String berechnung = String.valueOf(result);
              System.out.println(result);
        if (e.getSource()==erg){
            field.setText(berechnung);
            }
       }
       
          catch (ScriptException h) {
              System.out.println("Fehler");
              h.printStackTrace();
          }
      
       if(e.getSource() == sum){
                 field.setText(field.getText());
                
             }
             else if(e.getSource() == sub){
              field.setText(field.getText());
             }
             else if (e.getSource() == mult){
              field.setText(field.getText());
             }
             else if (e.getSource() == div){
              field.setText(field.getText());
             }
     }
    };
    ActionListener al2=new ActionListener(){
     public void actionPerformed(ActionEvent f){
      field.setText("");
     }
    };
    ActionListener al3=new ActionListener(){
     public void actionPerformed(ActionEvent g){
      
     }
    };
       
    numbers[0].addActionListener(al);
    numbers[1].addActionListener(al);
    numbers[2].addActionListener(al);
    numbers[3].addActionListener(al);
    numbers[4].addActionListener(al);
    numbers[5].addActionListener(al);
    numbers[6].addActionListener(al);
    numbers[7].addActionListener(al);
    numbers[8].addActionListener(al);
    numbers[9].addActionListener(al);
    point.addActionListener(al);
    C.addActionListener(al2);
    sum.addActionListener(al);
    sub.addActionListener(al);
    mult.addActionListener(al);
    div.addActionListener(al);
    erg.addActionListener(al);

    //                                      x  y  w  h  wx   wy

    addComponent( c, gbl, field, 0, 0, 4, 1, 1.0, 1.0);
    addComponent( c, gbl, C, 0, 1, 2, 1, 0 , 0 );
    addComponent( c, gbl, new JButton("←"), 2, 1, 1, 1, 0  , 0 );
    addComponent( c, gbl, div , 3, 1, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[7], 0, 3, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[4], 0, 4, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[1], 0, 5, 1, 1, 0  , 0 );
    addComponent( c, gbl, new JButton("+/-"), 0, 6, 1, 1, 0, 0 );
    addComponent( c, gbl, numbers[8], 1, 3, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[5], 1, 4, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[2], 1, 5, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[0], 1, 6, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[9], 2, 3, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[6], 2, 4, 1, 1, 0  , 0 );
    addComponent( c, gbl, numbers[3], 2, 5, 1, 1, 0  , 0 );
    addComponent( c, gbl, point, 2, 6, 1, 1, 0  , 0 );
    addComponent( c, gbl, mult, 3, 3, 1, 1, 0  , 0 );
    addComponent( c, gbl, sub, 3, 4, 1, 1, 0  , 0 );
    addComponent( c, gbl, sum, 3, 5, 1, 1, 0  , 0 );
    addComponent( c, gbl, erg, 3, 6, 1, 1, 0 , 0 );

    f.setSize( 250, 250);
    f.setVisible( true );
  }
}

 

Revise this Paste

Your Name: Code Language: