All pastes #919792 Raw Edit

Untitled

public java v1 · immutable
#919792 ·published 2008-02-27 00:11 UTC
rendered paste body
//Simple Java Calculator with changable visual themesimport java.awt.*;import java.awt.event.*;import javax.swing.*;class MiniCalc extends JFrame implements ActionListener{    //Initialize global variables    double total = 0;    String operation = "none";    boolean wipe = false;    JTextField cnumber = new JTextField(20);    Color color1 = Color.black;    Color color2 = Color.red;    Box screen = new Box(BoxLayout.Y_AXIS);    static JButton[] buttons = new JButton[20];    //Define an instance    public static void main(String[] args)    {        MiniCalc program = new MiniCalc();        program.run();    }    //Create an object    public void run()    {        setTitle("MiniCalc");        setDefaultCloseOperation(EXIT_ON_CLOSE);        Container pane = new Container();        ChangeColor colList1 = new ChangeColor(color1);        ChangeColor2 colList2 = new ChangeColor2(color2);        JMenuBar menu = menuCreation(colList1, colList2);        Box box = boxCreation(pane);        screen.add(menu);        screen.add(box);        screen.add(pane);        add(screen);        pack();        setVisible(true);    }    JMenuBar menuCreation(ChangeColor colList1, ChangeColor2 colList2)    {        JMenuBar menu = new JMenuBar();        JMenu file = nMenu("File", 'F', menu);        JMenu scheme = nMenu("Scheme", 'S', menu);        JMenuItem exit = new JMenuItem("Exit", 'x');        file.add(exit);        JMenu col1 = nMenu2("1st Colour", '1', scheme);        JMenu col2 = nMenu2("2nd Colour", '2', scheme);        exit.addActionListener(new ExitProg());        JMenuItem i1 = colMenu("Black", col1, 'l', colList1);        JMenuItem i2 = colMenu2("Black", col2, 'l', colList2);        JMenuItem i3 = colMenu("Blue", col1, 'B', colList1);        JMenuItem i4 = colMenu2("Blue", col2, 'B', colList2);        JMenuItem i5 = colMenu("Green", col1,'G', colList1);        JMenuItem i6 = colMenu2("Green", col2,'G', colList2);        JMenuItem i7 = colMenu("Orange", col1,'r', colList1);        JMenuItem i8 = colMenu2("Orange", col2,'r', colList2);        JMenuItem i9 = colMenu("Pink", col1,'P', colList1);        JMenuItem i10 = colMenu2("Pink", col2,'P', colList2);        JMenuItem i11 = colMenu("Red", col1, 'd', colList1);        JMenuItem i12 = colMenu2("Red", col2, 'd', colList2);        JMenuItem i13 = colMenu("White", col1, 'W', colList1);        JMenuItem i14 = colMenu2("White", col2, 'W', colList2);        JMenuItem i15 = colMenu("Yellow", col1, 'Y', colList1);        JMenuItem i16 = colMenu2("Yellow", col2, 'Y', colList2);        return menu;    }    Box boxCreation(Container pane)    {        Box box = new Box(BoxLayout.X_AXIS);        box.add(new JLabel("Result"));        box.add(cnumber);        cnumber.setText("0");        pane.setLayout(new GridLayout(4,5));        for (int i = 6; i < 9; i++)        {            buttons[i] = new JButton("" + (i + 1));            pane.add(buttons[i]);        }        buttons[9] = new JButton("+");        pane.add(buttons[9]);	buttons[16] = new JButton("x^2");        pane.add(buttons[16]);        for (int i = 3; i < 6; i++)        {            buttons[i] = new JButton("" + (i + 1));            pane.add(buttons[i]);        }        buttons[10] = new JButton("-");        pane.add(buttons[10]);	buttons[17] = new JButton("x^(1/2)");        pane.add(buttons[17]);        for (int i = 0; i < 3; i++)        {            buttons[i] = new JButton("" + (i + 1));            pane.add(buttons[i]);        }        buttons[11] = new JButton("*");        pane.add(buttons[11]);	buttons[18] = new JButton("AC");        pane.add(buttons[18]);        buttons[12] = new JButton("0");        pane.add(buttons[12]);        buttons[13] = new JButton(".");        pane.add(buttons[13]);        buttons[14] = new JButton("=");        pane.add(buttons[14]);        buttons[15] = new JButton("/");        pane.add(buttons[15]);	buttons[19] = new JButton("C");        pane.add(buttons[19]);        for (int i = 0; i < buttons.length; i++)	{            buttons[i].addActionListener(this);	    buttons[i].setBackground(color1);	    buttons[i].setForeground(color2);	}        return box;    }    public void actionPerformed(ActionEvent e)    {        String pressedButton = e.getActionCommand();        if (pressedButton.equals("+"))        {	    total = Double.parseDouble(cnumber.getText());            operation = "add";            cnumber.setText("0");        }        else if (pressedButton.equals("-"))        {            total = Double.parseDouble(cnumber.getText());            operation = "minus";            cnumber.setText("0");        }        else if (pressedButton.equals("/"))        {            total = Double.parseDouble(cnumber.getText());            operation = "divide";            cnumber.setText("0");        }        else if (pressedButton.equals("*"))        {            total = Double.parseDouble(cnumber.getText());            operation = "multiply";            cnumber.setText("0");        }	else if (pressedButton.equals("x^2"))	{		total = Double.parseDouble(cnumber.getText())*Double.parseDouble(cnumber.getText());		operation = "none";		cnumber.setText(String.valueOf(total));		wipe = true;	}	else if (pressedButton.equals("x^(1/2)"))	{		total = Math.sqrt(Double.parseDouble(cnumber.getText()));		operation = "none";		cnumber.setText(String.valueOf(total));		wipe = true;	}	else if (pressedButton.equals("AC"))	{		total = 0;		operation = "none";		cnumber.setText("0");	}	else if (pressedButton.equals("C"))	{		cnumber.setText("0");	}        else if (pressedButton.equals("="))        {            if (operation.equals("add"))            {                total = total + Double.parseDouble(cnumber.getText());                cnumber.setText(String.valueOf(total));                operation = "none";            }            if (operation.equals("minus"))            {                total = total - Double.parseDouble(cnumber.getText());                cnumber.setText(String.valueOf(total));                operation = "none";            }            if (operation.equals("multiply"))            {                total = total * Double.parseDouble(cnumber.getText());                cnumber.setText(String.valueOf(total));                operation = "none";            }            if (operation.equals("divide"))            {                total = total / Double.parseDouble(cnumber.getText());                cnumber.setText(String.valueOf(total));                operation = "none";            }	    wipe = true;        }        else        {	    if (wipe == true) {	    	cnumber.setText("0");		wipe = false;	    }            if (pressedButton.equals("."))            {                if (cnumber.getText().equals("0"))                    cnumber.setText("0.");                else if (cnumber.getText().indexOf('.') < 0)                    cnumber.setText(cnumber.getText()+pressedButton);            }            else if (cnumber.getText().equals("0"))                cnumber.setText(pressedButton);            else cnumber.setText(cnumber.getText() + pressedButton);        }    }    JLabel label(String text, Container pane)    {        JLabel l = new JLabel (text);        pane.add(l);        l.setForeground(color2);        return l;    }    JMenuItem colMenu(String text, JMenu col1, char x, ChangeColor listener)    {        JMenuItem col = new JMenuItem(text, x);        col.addActionListener(listener);        col1.add(col);        return col;    }    JMenuItem colMenu2(String text, JMenu col1, char x, ChangeColor2 listener)    {        JMenuItem col = new JMenuItem(text, x);        col.addActionListener(listener);        col1.add(col);        return col;    }    JMenu nMenu(String text, char x, JMenuBar mMenu)    {        JMenu menu = new JMenu(text);        menu.setMnemonic(x);        mMenu.add(menu);        return menu;    }    JMenu nMenu2(String text, char x, JMenu mMenu)    {        JMenu menu = new JMenu(text);        menu.setMnemonic(x);        mMenu.add(menu);        return menu;    }    class ExitProg implements ActionListener    {        public void actionPerformed(ActionEvent e)        {            System.exit(0);        }    }    class ChangeColor implements ActionListener    {        ChangeColor(Color selected)        {            Color x = selected;        }        public void actionPerformed(ActionEvent e)        {            if (e.getActionCommand().equals("Black")) color1 = Color.black;            else if(e.getActionCommand().equals("Blue")) color1=Color.blue;            else if(e.getActionCommand().equals("Green")) color1 =Color.green;            else if(e.getActionCommand().equals("Orange")) color1=Color.orange;            else if(e.getActionCommand().equals("Pink")) color1=Color.pink;            else if(e.getActionCommand().equals("Red")) color1=Color.red;            else if(e.getActionCommand().equals("White")) color1=Color.white;            else color1=Color.yellow;            for (JButton b : buttons)            	b.setForeground(color1);	    cnumber.setForeground(color1);        }    }    class ChangeColor2 implements ActionListener    {        ChangeColor2(Color selected)        {            Color y = selected;        }        public void actionPerformed(ActionEvent e)        {            if (e.getActionCommand().equals("Black")) color2 = Color.black;            else if(e.getActionCommand().equals("Blue")) color2=Color.blue;            else if(e.getActionCommand().equals("Green")) color2 =Color.green;            else if(e.getActionCommand().equals("Orange")) color2=Color.orange;            else if(e.getActionCommand().equals("Pink")) color2=Color.pink;            else if(e.getActionCommand().equals("Red")) color2=Color.red;            else if(e.getActionCommand().equals("White")) color2=Color.white;            else color2=Color.yellow;	    for (JButton b : buttons)	    	b.setBackground(color2);	    cnumber.setBackground(color2);        }        private Color y;    }}