Professional Documents
Culture Documents
import java.awt.Container;
public class SimpleCalcu implements ActionListener { JFrame guiFrame; JPanel buttonPanel; JTextField numberCalc; int calcOperation = 0; int currentCalc; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new SimpleCalc_main(); } }); } public void SimpleCalc() { guiFrame = new JFrame(); guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); guiFrame.setTitle("Simple Calculator"); guiFrame.setSize(300, 300); guiFrame.setLocationRelativeTo(null); numberCalc = new JTextField(); numberCalc.setHorizontalAlignment(JTextField.RIGHT); numberCalc.setEditable(false); guiFrame.add(numberCalc, BorderLayout.NORTH); buttonPanel = new JPanel(); buttonPanel.setLayout(new GridLayout (4, 3)); guiFrame.add(buttonPanel, BorderLayout.CENTER);
for (int i=1; i<10; i++) { addButton(buttonPanel, String.valueOf(i)); } JButton addButton = new JButton("+"); addButton.setActionCommand("+"); OperatorAction subAction = new OperatorAction(1); addButton.addActionListener(subAction); JButton subButton = new JButton("-"); subButton.setActionCommand("-"); JButton equalsButton = new JButton("="); equalsButton.setActionCommand("="); equalsButton.addActionListener(new ActionListener() {
private void addButton(JPanel buttonPanel2, String valueOf) { // TODO Auto-generated method stub } @Override public void actionPerformed(ActionEvent event) { // TODO Auto-generated method stub if (!numberCalc.getText() .isEmpty()) { int number = Integer.parseInt(numberCalc.getText()); if (calcOperation == 1) { int calculate = currentCalc + number; numberCalc.setText(Integer.toString(calculate)); } else if (calcOperation == 2) { int calculate = currentCalc - number; numberCalc.setText(Integer.toString(calculate)); } } } }); buttonPanel.add(addButton); buttonPanel.add(subButton); buttonPanel.add(equalsButton); guiFrame.setVisible(true); }
private void addButton(Container parent, String name) { JButton but = new JButton(name); but.setActionCommand(name); but.addActionListener(this); parent.add(but); }
@Override public void actionPerformed(ActionEvent event) { String action = event.getActionCommand(); numberCalc.setText(action); } private class OperatorAction implements ActionListener { private int operator; public OperatorAction(int operation) { operator = operation; } public void actionPerformed(ActionEvent event) { currentCalc = Integer.parseInt(numberCalc.getText()); calcOperation = operator; } } }