package Calculator; // CalcGUI.java import java.awt.*; import javax.swing.*; import java.awt.event.*; public class CalcGUI extends JFrame implements ActionListener, KeyListener { JPanel contentPane; JMenuBar jMenuBar1 = new JMenuBar(); JMenu menuFile = new JMenu(); JMenuItem menuQuit = new JMenuItem(); JTextField solution = new JTextField(); JButton[] numbers = new JButton[10]; JButton minus = new JButton(); JButton multiply = new JButton(); JButton add = new JButton(); JButton divide = new JButton(); JButton equals = new JButton(); JButton clear = new JButton(); String temp = ""; public CalcGUI() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { addKeyListener(this); contentPane = (JPanel) getContentPane(); for(int index = 0; index<10; index++) { numbers[index] = new JButton(Integer.toString(index)); contentPane.add(numbers[index]); numbers[index].addActionListener(this); numbers[index].addKeyListener(this); } numbers[1].setBounds(new Rectangle(9, 51, 51, 23)); numbers[2].setBounds(new Rectangle(73, 51, 51, 23)); numbers[3].setBounds(new Rectangle(137, 51, 51, 23)); numbers[4].setBounds(new Rectangle(9, 83, 51, 23)); numbers[5].setBounds(new Rectangle(73, 83, 51, 23)); numbers[6].setBounds(new Rectangle(137, 83, 51, 23)); numbers[7].setBounds(new Rectangle(9, 115, 51, 23)); numbers[8].setBounds(new Rectangle(73, 115, 51, 23)); numbers[9].setBounds(new Rectangle(137, 115, 51, 23)); numbers[0].setBounds(new Rectangle(73, 147, 51, 23)); this.setJMenuBar(jMenuBar1); setSize(new Dimension(268, 237)); setTitle("Calculator"); contentPane.setLayout(null); menuQuit.setText("Quit"); menuQuit.addActionListener(this); menuFile.setText("File"); solution.setForeground(Color.black); solution.setDisabledTextColor(Color.black); solution.setBackground(Color.white); solution.setEditable(false); solution.setBounds(new Rectangle(9, 13, 179, 19)); minus.setBounds(new Rectangle(200, 83, 51, 23)); minus.setText("-"); multiply.setBounds(new Rectangle(200, 115, 51, 23)); multiply.setText("*"); add.setBounds(new Rectangle(200, 51, 51, 23)); add.setText("+"); add.addActionListener(this); divide.setBounds(new Rectangle(200, 147, 51, 23)); divide.setToolTipText(""); divide.setText("/"); equals.setBounds(new Rectangle(200, 11, 51, 23)); equals.setText("="); clear.setBounds(new Rectangle(137, 147, 51, 23)); clear.setText("C"); clear.addActionListener(this); jMenuBar1.add(menuFile); menuFile.add(menuQuit); contentPane.add(solution); contentPane.add(add); contentPane.add(minus); contentPane.add(multiply); contentPane.add(divide); contentPane.add(equals); contentPane.add(clear); } public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if(source==menuQuit) { System.exit(0); } for(int index = 0; index='0'&&c<='9') { temp = temp+c; solution.setText(temp); } else if(c=='+') { // do plus operation... } } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } }