Advertisement
Guest User

Untitled

a guest
May 25th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. package calc;
  2.  
  3. import java.awt.Font;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.util.ArrayList;
  7. import javax.swing.JButton;
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10. import javax.swing.JTextField;
  11.  
  12. public class Calculator extends JFrame implements ActionListener {
  13.  
  14. private JButton[] buttons;
  15. private JTextField field;
  16. private ArrayList<Double> numbers;
  17. private double result;
  18. private boolean plus, min;
  19.  
  20. public Calculator() {
  21. buttons = new JButton[15];
  22. numbers = new ArrayList<>();
  23. plus = false;
  24. min = false;
  25. createButtons();
  26. createPanel();
  27. }
  28.  
  29. public static void main(String[] args) {
  30. JFrame frame = new Calculator();
  31. frame.setTitle("Calculator");
  32. frame.setSize(500, 600);
  33. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34. frame.setVisible(true);
  35. }
  36.  
  37. private void createButtons() {
  38. for (int i = 0; i < buttons.length; i++) {
  39. if (i == 10) {
  40. buttons[i] = new JButton(".");
  41. } else if (i == 11) {
  42. buttons[i] = new JButton("+");
  43. } else if (i == 12) {
  44. buttons[i] = new JButton("-");
  45. } else if (i == 13) {
  46. buttons[i] = new JButton("=");
  47. } else if (i == 14) {
  48. buttons[i] = new JButton("Clear");
  49. } else {
  50. buttons[i] = new JButton(i + "");
  51. }
  52. buttons[i].addActionListener(this);
  53. }
  54. }
  55.  
  56. private void createPanel() {
  57. JPanel panel = new JPanel();
  58. panel.setLayout(null);
  59. field = new JTextField();
  60. Font f = new Font("SanSerif", Font.BOLD, 40);
  61. field.setFont(f);
  62. field.setBounds(50, 30, 385, 60);
  63. panel.add(field);
  64. int k = 0;
  65. for (int i = 0; i < 4; i++) {
  66. for (int j = 0; j < 4; j++) {
  67. buttons[k].setBounds(j * 100 + 55, i * 100 + 140, 75, 60);
  68. panel.add(buttons[k]);
  69. if (k < 14) {
  70. k++;
  71. }
  72. }
  73. }
  74. add(panel);
  75. }
  76.  
  77. @Override
  78. public void actionPerformed(ActionEvent e) {
  79. for (int i = 0; i < buttons.length; i++) {
  80. if (e.getSource().equals(buttons[i]) && i < 11) {
  81. field.setText(buttons[i].getText());
  82. numbers.add(Double.parseDouble(field.getText()));
  83. operation();
  84. }
  85. }
  86. if (e.getSource() == buttons[11]) {
  87. plus = true;
  88. } else if (e.getSource() == buttons[12]) {
  89. min = true;
  90. } else if (e.getSource() == buttons[13]) {
  91. field.setText("" + result);
  92. } else if (e.getSource() == buttons[14]) {
  93. field.setText("");
  94. numbers.clear();
  95. plus = false;
  96. min = false;
  97. }
  98.  
  99. }
  100.  
  101. public double operation() {
  102. for (int i = 0; i < numbers.size(); i++) {
  103. System.out.println(numbers.get(i));
  104. }
  105. System.out.println("");
  106. if (plus) {
  107. result = numbers.get(0) + numbers.get(1);
  108. numbers.clear();
  109. numbers.add(result);
  110. plus = false;
  111. }
  112. if (min) {
  113. result = numbers.get(0) - numbers.get(1);
  114. numbers.clear();
  115. numbers.add(result);
  116. min = false;
  117. }
  118.  
  119. return result;
  120. }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement