Advertisement
Guest User

Untitled

a guest
Jun 19th, 2014
3,526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.hotlert;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. public class Frame extends JFrame {
  9.  
  10.     private double tempNumbers1 = 0;
  11.     private double tempNumbers2 = 0;
  12.  
  13.     private byte function = -1;
  14.  
  15.  
  16.     private JTextField resultJText;
  17.  
  18.     public Frame() {
  19.  
  20.         JButton[] numberButtons = new JButton[10];
  21.  
  22.         for ( int i = 9; i >= 0; i--) {
  23.             numberButtons[i] = new JButton(Integer.toString(i));
  24.         }
  25.  
  26.         JButton enterButton     = new JButton("Enter");
  27.         JButton cButton         = new JButton("C");
  28.         JButton multiplyButton  = new JButton("*");
  29.         JButton divideButton    = new JButton("/");
  30.         JButton addButton       = new JButton("+");
  31.         JButton substractButton = new JButton("-");
  32.  
  33.  
  34.         resultJText = new JTextField();
  35.             resultJText.setPreferredSize(new Dimension(160, 20));
  36.             resultJText.setBackground(Color.WHITE);
  37.             resultJText.setEnabled(false);
  38.             resultJText.setHorizontalAlignment(4);
  39.             resultJText.setDisabledTextColor(Color.BLACK);
  40.  
  41.  
  42.         JPanel motherPanel = new JPanel();
  43.             motherPanel.setLayout(new BoxLayout(motherPanel, BoxLayout.Y_AXIS));
  44.  
  45.         JPanel textPanel = new JPanel();
  46.             textPanel.setPreferredSize(new Dimension(160, 20));
  47.             textPanel.add(resultJText);
  48.  
  49.         JPanel numberButtonsPanel = new JPanel();
  50.             numberButtonsPanel.setPreferredSize(new Dimension(160, 100));
  51.  
  52.             for(int i = 9; i>=0; i--) {
  53.                 numberButtonsPanel.add(numberButtons[i]);
  54.             }
  55.  
  56.         JPanel functionButtonPanel = new JPanel();
  57.             functionButtonPanel.setPreferredSize(new Dimension(160, 35));
  58.             functionButtonPanel.add(enterButton);
  59.             functionButtonPanel.add(cButton);
  60.             functionButtonPanel.add(multiplyButton);
  61.             functionButtonPanel.add(divideButton);
  62.             functionButtonPanel.add(addButton);
  63.             functionButtonPanel.add(substractButton);
  64.  
  65.         numberButtonsAction[] numberButtonActions = new numberButtonsAction[10];
  66.         for ( int i = 0; i < 10; i++ ) {
  67.             numberButtonActions[i] = new numberButtonsAction(numberButtons[i]);
  68.             numberButtons[i].addActionListener(numberButtonActions[i]);
  69.         }
  70.  
  71.         EnterButton enter = new EnterButton();
  72.             enterButton.addActionListener(enter);
  73.  
  74.         CButton c = new CButton();
  75.             cButton.addActionListener(c);
  76.  
  77.         MultiplyButton multiply = new MultiplyButton();
  78.             multiplyButton.addActionListener(multiply);
  79.  
  80.         DivideButton divide = new DivideButton();
  81.             divideButton.addActionListener(divide);
  82.  
  83.         AddButton add = new AddButton();
  84.             addButton.addActionListener(add);
  85.  
  86.         SubtractButton subtract = new SubtractButton();
  87.             substractButton.addActionListener(subtract);
  88.  
  89.         motherPanel.add(textPanel);
  90.         motherPanel.add(numberButtonsPanel);
  91.         motherPanel.add(functionButtonPanel);
  92.         add(motherPanel);
  93.  
  94.         setTitle("ButtonTest");
  95.         setSize(180, 290);
  96.         setLocationByPlatform(true);
  97.         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  98.         setVisible(true);
  99.  
  100.     }
  101.  
  102.     private class numberButtonsAction implements ActionListener {
  103.  
  104.         private String c;
  105.  
  106.         public numberButtonsAction(JButton a) {
  107.             this.c = a.getText();
  108.         }
  109.  
  110.         public void actionPerformed(ActionEvent e) {
  111.             if (!resultJText.getText().equals("0.0")) {
  112.                 resultJText.setText(resultJText.getText() + c);
  113.             } else {
  114.                 resultJText.setText("");
  115.                 actionPerformed(e);
  116.             }
  117.         }
  118.     }
  119.  
  120.     private class EnterButton implements ActionListener {
  121.  
  122.         @Override
  123.         public void actionPerformed(ActionEvent e) {
  124.             tempNumbers2 = Double.parseDouble(resultJText.getText());
  125.  
  126.             if (function == 0) {
  127.                 resultJText.setText(Double.toString((Math.round((tempNumbers1 / tempNumbers2) * 100)) / 100));
  128.             } else if (function == 1) {
  129.                 resultJText.setText(Double.toString(tempNumbers1 * tempNumbers2));
  130.             } else if (function == 2) {
  131.                 resultJText.setText(Double.toString(tempNumbers2 + tempNumbers1));
  132.             } else if (function == 3) {
  133.                 resultJText.setText(Double.toString(tempNumbers1 - tempNumbers2));
  134.             } else {
  135.                 resultJText.setText(String.valueOf(tempNumbers1));
  136.             }
  137.                 tempNumbers1 = Double.parseDouble(resultJText.getText());
  138.         }
  139.  
  140.  
  141.     }
  142.  
  143.     private class CButton implements ActionListener {
  144.  
  145.         @Override
  146.         public void actionPerformed(ActionEvent e) {
  147.             resultJText.setText("");
  148.             tempNumbers1 = 0;
  149.             tempNumbers2 = 0;
  150.  
  151.             function = -1;
  152.         }
  153.  
  154.  
  155.     }
  156.    
  157.     private class DivideButton implements ActionListener {
  158.  
  159.         @Override
  160.         public void actionPerformed(ActionEvent e) {
  161.             if (tempNumbers1 == 0) {
  162.                 tempNumbers1 = Double.parseDouble(resultJText.getText());
  163.                 resultJText.setText("");
  164.             } else {
  165.                 tempNumbers2 = Double.parseDouble(resultJText.getText());
  166.                 resultJText.setText("");
  167.             }
  168.             function = 0;
  169.         }
  170.  
  171.     }
  172.  
  173.     private class MultiplyButton implements ActionListener {
  174.  
  175.         @Override
  176.         public void actionPerformed(ActionEvent e) {
  177.             if (tempNumbers1 == 0) {
  178.                 tempNumbers1 = Double.parseDouble(resultJText.getText());
  179.                 resultJText.setText("");
  180.             } else {
  181.                 tempNumbers2 = Double.parseDouble(resultJText.getText());
  182.                 resultJText.setText("");
  183.             }
  184.             function = 1;
  185.         }
  186.  
  187.  
  188.     }
  189.  
  190.  
  191.     private class AddButton implements ActionListener {
  192.  
  193.         @Override
  194.         public void actionPerformed(ActionEvent e) {
  195.             if (tempNumbers1 == 0) {
  196.                 tempNumbers1 = Double.parseDouble(resultJText.getText());
  197.                 resultJText.setText("");
  198.             } else {
  199.                 tempNumbers2 = Double.parseDouble(resultJText.getText());
  200.                 resultJText.setText("");
  201.             }
  202.             function = 2;
  203.         }
  204.  
  205.     }
  206.  
  207.     private class SubtractButton implements ActionListener {
  208.  
  209.         @Override
  210.         public void actionPerformed(ActionEvent e) {
  211.             if (tempNumbers1 == 0) {
  212.                 tempNumbers1 = Double.parseDouble(resultJText.getText());
  213.                 resultJText.setText("");
  214.             } else {
  215.                 tempNumbers2 = Double.parseDouble(resultJText.getText());
  216.                 resultJText.setText("");
  217.             }
  218.             function = 3;
  219.         }
  220.  
  221.     }
  222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement