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; }}