package calculator; import java.awt.EventQueue; import javax.swing.JFrame; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JTextField; import java.awt.GridBagLayout; import java.awt.GridBagConstraints; import java.awt.Insets; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.SwingConstants; import java.awt.Font; import java.awt.Color; public class CalculatorGUI { private JFrame frame; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { CalculatorGUI window = new CalculatorGUI(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } DisplayBean displayBean; private Double result = 0.0; private Double newOperand = 0.0; private String operationType = ""; /** * Create the application. */ public CalculatorGUI() { initialize(); } void addNumber(int i) { displayBean.setValue(displayBean.getValue() + i); } void applyOperation() { newOperand = Double.parseDouble(displayBean.getValue()); switch (operationType) { case "+": result = result + newOperand; break; case "-": result = result - newOperand; break; case "/": result = result / newOperand; break; case "*": result = result * newOperand; break; default: ; } newOperand = 0.0; operationType = ""; displayBean.setValue(result + ""); } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 199, 181); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); GridBagLayout gridBagLayout = new GridBagLayout(); gridBagLayout.columnWidths = new int[] { 44, 44, 44, 44, 0 }; gridBagLayout.rowHeights = new int[] { 27, 27, 27, 27, 27, 0 }; gridBagLayout.columnWeights = new double[] { 1.0, 0.0, 0.0, 0.0, Double.MIN_VALUE }; gridBagLayout.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE }; frame.getContentPane().setLayout(gridBagLayout); JButton btnNewButton = new JButton("1"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { addNumber(1); } }); GridBagConstraints gbc_btnNewButton = new GridBagConstraints(); gbc_btnNewButton.fill = GridBagConstraints.BOTH; gbc_btnNewButton.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton.gridx = 0; gbc_btnNewButton.gridy = 1; frame.getContentPane().add(btnNewButton, gbc_btnNewButton); JButton btnNewButton_1 = new JButton("2"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(2); } }); GridBagConstraints gbc_btnNewButton_1 = new GridBagConstraints(); gbc_btnNewButton_1.fill = GridBagConstraints.BOTH; gbc_btnNewButton_1.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_1.gridx = 1; gbc_btnNewButton_1.gridy = 1; frame.getContentPane().add(btnNewButton_1, gbc_btnNewButton_1); JButton btnNewButton_2 = new JButton("3"); btnNewButton_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(3); } }); GridBagConstraints gbc_btnNewButton_2 = new GridBagConstraints(); gbc_btnNewButton_2.fill = GridBagConstraints.BOTH; gbc_btnNewButton_2.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_2.gridx = 2; gbc_btnNewButton_2.gridy = 1; frame.getContentPane().add(btnNewButton_2, gbc_btnNewButton_2); JButton btnNewButton_3 = new JButton("+"); btnNewButton_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operationType = "+"; result = Double.parseDouble(displayBean.getValue()); displayBean.setValue(""); } }); GridBagConstraints gbc_btnNewButton_3 = new GridBagConstraints(); gbc_btnNewButton_3.fill = GridBagConstraints.BOTH; gbc_btnNewButton_3.insets = new Insets(0, 0, 5, 0); gbc_btnNewButton_3.gridx = 3; gbc_btnNewButton_3.gridy = 1; frame.getContentPane().add(btnNewButton_3, gbc_btnNewButton_3); JButton btnNewButton_4 = new JButton("4"); btnNewButton_4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(4); } }); GridBagConstraints gbc_btnNewButton_4 = new GridBagConstraints(); gbc_btnNewButton_4.fill = GridBagConstraints.BOTH; gbc_btnNewButton_4.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_4.gridx = 0; gbc_btnNewButton_4.gridy = 2; frame.getContentPane().add(btnNewButton_4, gbc_btnNewButton_4); JButton btnNewButton_5 = new JButton("5"); btnNewButton_5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(5); } }); GridBagConstraints gbc_btnNewButton_5 = new GridBagConstraints(); gbc_btnNewButton_5.fill = GridBagConstraints.BOTH; gbc_btnNewButton_5.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_5.gridx = 1; gbc_btnNewButton_5.gridy = 2; frame.getContentPane().add(btnNewButton_5, gbc_btnNewButton_5); JButton btnNewButton_6 = new JButton("6"); btnNewButton_6.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(6); } }); GridBagConstraints gbc_btnNewButton_6 = new GridBagConstraints(); gbc_btnNewButton_6.fill = GridBagConstraints.BOTH; gbc_btnNewButton_6.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_6.gridx = 2; gbc_btnNewButton_6.gridy = 2; frame.getContentPane().add(btnNewButton_6, gbc_btnNewButton_6); JButton btnNewButton_7 = new JButton("-"); btnNewButton_7.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operationType = "-"; result = Double.parseDouble(displayBean.getValue()); displayBean.setValue(""); } }); GridBagConstraints gbc_btnNewButton_7 = new GridBagConstraints(); gbc_btnNewButton_7.fill = GridBagConstraints.BOTH; gbc_btnNewButton_7.insets = new Insets(0, 0, 5, 0); gbc_btnNewButton_7.gridx = 3; gbc_btnNewButton_7.gridy = 2; frame.getContentPane().add(btnNewButton_7, gbc_btnNewButton_7); JButton btnNewButton_8 = new JButton("7"); btnNewButton_8.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(7); } }); GridBagConstraints gbc_btnNewButton_8 = new GridBagConstraints(); gbc_btnNewButton_8.fill = GridBagConstraints.BOTH; gbc_btnNewButton_8.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_8.gridx = 0; gbc_btnNewButton_8.gridy = 3; frame.getContentPane().add(btnNewButton_8, gbc_btnNewButton_8); JButton btnNewButton_9 = new JButton("8"); btnNewButton_9.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(8); } }); GridBagConstraints gbc_btnNewButton_9 = new GridBagConstraints(); gbc_btnNewButton_9.fill = GridBagConstraints.BOTH; gbc_btnNewButton_9.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_9.gridx = 1; gbc_btnNewButton_9.gridy = 3; frame.getContentPane().add(btnNewButton_9, gbc_btnNewButton_9); JButton btnNewButton_10 = new JButton("9"); btnNewButton_10.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(9); } }); GridBagConstraints gbc_btnNewButton_10 = new GridBagConstraints(); gbc_btnNewButton_10.fill = GridBagConstraints.BOTH; gbc_btnNewButton_10.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_10.gridx = 2; gbc_btnNewButton_10.gridy = 3; frame.getContentPane().add(btnNewButton_10, gbc_btnNewButton_10); JButton btnNewButton_11 = new JButton("*"); btnNewButton_11.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operationType = "*"; result = Double.parseDouble(displayBean.getValue()); displayBean.setValue(""); } }); GridBagConstraints gbc_btnNewButton_11 = new GridBagConstraints(); gbc_btnNewButton_11.fill = GridBagConstraints.BOTH; gbc_btnNewButton_11.insets = new Insets(0, 0, 5, 0); gbc_btnNewButton_11.gridx = 3; gbc_btnNewButton_11.gridy = 3; frame.getContentPane().add(btnNewButton_11, gbc_btnNewButton_11); JButton btnNewButton_12 = new JButton("0"); btnNewButton_12.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNumber(0); } }); GridBagConstraints gbc_btnNewButton_12 = new GridBagConstraints(); gbc_btnNewButton_12.fill = GridBagConstraints.BOTH; gbc_btnNewButton_12.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_12.gridx = 0; gbc_btnNewButton_12.gridy = 4; frame.getContentPane().add(btnNewButton_12, gbc_btnNewButton_12); JButton btnNewButton_13 = new JButton("="); btnNewButton_13.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { applyOperation(); } }); GridBagConstraints gbc_btnNewButton_13 = new GridBagConstraints(); gbc_btnNewButton_13.fill = GridBagConstraints.BOTH; gbc_btnNewButton_13.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_13.gridx = 1; gbc_btnNewButton_13.gridy = 4; frame.getContentPane().add(btnNewButton_13, gbc_btnNewButton_13); JButton btnNewButton_14 = new JButton("C"); btnNewButton_14.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { result = 0.0; newOperand = 0.0; operationType = ""; } }); GridBagConstraints gbc_btnNewButton_14 = new GridBagConstraints(); gbc_btnNewButton_14.fill = GridBagConstraints.BOTH; gbc_btnNewButton_14.insets = new Insets(0, 0, 5, 5); gbc_btnNewButton_14.gridx = 2; gbc_btnNewButton_14.gridy = 4; frame.getContentPane().add(btnNewButton_14, gbc_btnNewButton_14); JButton btnNewButton_15 = new JButton("/"); btnNewButton_15.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { operationType = "/"; result = Double.parseDouble(displayBean.getValue()); displayBean.setValue(""); } }); GridBagConstraints gbc_btnNewButton_15 = new GridBagConstraints(); gbc_btnNewButton_15.fill = GridBagConstraints.BOTH; gbc_btnNewButton_15.insets = new Insets(0, 0, 5, 0); gbc_btnNewButton_15.gridx = 3; gbc_btnNewButton_15.gridy = 4; frame.getContentPane().add(btnNewButton_15, gbc_btnNewButton_15); displayBean = new DisplayBean(); displayBean.setForeground(Color.WHITE); displayBean.setLength(20); displayBean.setBackground(Color.BLACK); GridBagConstraints gbc_displayBean = new GridBagConstraints(); gbc_displayBean.gridwidth = 4; gbc_displayBean.insets = new Insets(0, 0, 0, 5); gbc_displayBean.fill = GridBagConstraints.BOTH; gbc_displayBean.gridx = 0; gbc_displayBean.gridy = 0; frame.getContentPane().add(displayBean, gbc_displayBean); } }