При выполнении операций +, — , * и / не очищать экран - Java

Узнай цену своей работы

Формулировка задачи:

Всем доброго дня! Подскажите , что нужно сделать в коде ниже, чтобы при нажатии на операцию +,-,/,* числа не исчезали...Сейчас такая последовательность: нажимаю 5, потом + и число пять пропадает, нажимаю дальше 5, потом равно и выводится результат... А нужно нажимаю 5, потом + и число не исчезает...
Листинг программы
  1. public class CalcFrame extends JFrame {
  2. JTextArea display= new JTextArea();
  3. JPanel buttonPanel = new JPanel(new GridLayout(5,3));
  4. JButton button0 = new JButton("0");
  5. JButton button1 = new JButton("1");
  6. JButton button2 = new JButton("2");
  7. JButton button3 = new JButton("3");
  8. JButton button4 = new JButton("4");
  9. JButton button5 = new JButton("5");
  10. JButton button6 = new JButton("6");
  11. JButton button7 = new JButton("7");
  12. JButton button8 = new JButton("8");
  13. JButton button9 = new JButton("9");
  14. JButton buttonSum = new JButton("+");
  15. JButton buttonBack = new JButton("C");
  16. JButton buttonDivide = new JButton("/");
  17. JButton buttonSub = new JButton("-");
  18. JButton buttonMul = new JButton("*");
  19. JButton buttonStart = new JButton("=");
  20. int firstValue = 0;
  21. String operation = "+";
  22. CalcFrame() {
  23. setBounds(300, 300, 300, 300);
  24. button0.addActionListener(new ActionListener() {
  25. @Override
  26. public void actionPerformed(ActionEvent e) {
  27. display.setText(display.getText() + "0");
  28. }
  29. });
  30. button1.addActionListener(new ActionListener() {
  31. @Override
  32. public void actionPerformed(ActionEvent e) {
  33. display.setText(display.getText()+"1");
  34. }
  35. });
  36. button2.addActionListener(new ActionListener() {
  37. @Override
  38. public void actionPerformed(ActionEvent e) {
  39. display.setText(display.getText()+"2");
  40. }
  41. });
  42. button3.addActionListener(new ActionListener() {
  43. @Override
  44. public void actionPerformed(ActionEvent e) {
  45. display.setText(display.getText()+"3");
  46. }
  47. });
  48. button4.addActionListener(new ActionListener() {
  49. @Override
  50. public void actionPerformed(ActionEvent e) {
  51. display.setText(display.getText()+"4");
  52. }
  53. });
  54. button5.addActionListener(new ActionListener() {
  55. @Override
  56. public void actionPerformed(ActionEvent e) {
  57. display.setText(display.getText()+"5");
  58. }
  59. });
  60. button6.addActionListener(new ActionListener() {
  61. @Override
  62. public void actionPerformed(ActionEvent e) {
  63. display.setText(display.getText()+"6");
  64. }
  65. });
  66. button7.addActionListener(new ActionListener() {
  67. @Override
  68. public void actionPerformed(ActionEvent e) {
  69. display.setText(display.getText()+"7");
  70. }
  71. });
  72. button8.addActionListener(new ActionListener() {
  73. @Override
  74. public void actionPerformed(ActionEvent e) {
  75. display.setText(display.getText()+"8");
  76. }
  77. });
  78. button9.addActionListener(new ActionListener() {
  79. @Override
  80. public void actionPerformed(ActionEvent e) {
  81. display.setText(display.getText()+"9");
  82. }
  83. });
  84. buttonBack.addActionListener(new ActionListener() {
  85. @Override
  86. public void actionPerformed(ActionEvent e) {
  87. String temp = display.getText();
  88. display.setText(temp.substring(0,temp.length()-1));
  89. }
  90. });
  91. buttonSum.addActionListener(new ActionListener() {
  92. @Override
  93. public void actionPerformed(ActionEvent e) {
  94. firstValue = Integer.valueOf(display.getText());
  95. display.setText("");
  96. operation = "+";
  97. }
  98. });
  99. buttonMul.addActionListener(new ActionListener() {
  100. @Override
  101. public void actionPerformed(ActionEvent e) {
  102. firstValue = Integer.valueOf(display.getText());
  103. display.setText("");
  104. operation = "*";
  105. }
  106. });
  107. buttonDivide.addActionListener(new ActionListener() {
  108. @Override
  109. public void actionPerformed(ActionEvent e) {
  110. firstValue = Integer.valueOf(display.getText());
  111. display.setText("");
  112. operation = "/";
  113. }
  114. });
  115. buttonSub.addActionListener(new ActionListener() {
  116. @Override
  117. public void actionPerformed(ActionEvent e) {
  118. firstValue = Integer.valueOf(display.getText());
  119. display.setText("");
  120. operation = "-";
  121. }
  122. });
  123. buttonStart.addActionListener(new ActionListener() {
  124. @Override
  125. public void actionPerformed(ActionEvent e) {
  126. int secondValue = Integer.valueOf(display.getText());
  127. if("+".equals(operation)){
  128. display.setText((firstValue+secondValue)+"");
  129. }
  130. if("-".equals(operation)){
  131. display.setText((firstValue-secondValue)+"");
  132. }
  133. if("*".equals(operation)){
  134. display.setText((firstValue*secondValue)+"");
  135. }
  136. if("/".equals(operation)){
  137. display.setText((firstValue/secondValue)+"");
  138. }
  139. firstValue = 0;
  140. operation = "+";
  141. }
  142. });
  143. setLayout(new BorderLayout());
  144. add(display, BorderLayout.NORTH);
  145. add(buttonPanel,BorderLayout.CENTER);
  146. add(buttonStart,BorderLayout.SOUTH);
  147. buttonPanel.add(button0);
  148. buttonPanel.add(button1);
  149. buttonPanel.add(button2);
  150. buttonPanel.add(button3);
  151. buttonPanel.add(button4);
  152. buttonPanel.add(button5);
  153. buttonPanel.add(button6);
  154. buttonPanel.add(button7);
  155. buttonPanel.add(button8);
  156. buttonPanel.add(button9);
  157. buttonPanel.add(buttonSum);
  158. buttonPanel.add(buttonSub);
  159. buttonPanel.add(buttonMul);
  160. buttonPanel.add(buttonBack);
  161. buttonPanel.add(buttonDivide);
  162. setVisible(true);
  163. }
  164. public static void main(String[] args) {
  165. new CalcFrame();
  166. }
  167. }
функция очищения была изначально...калькулятор не мой, я просто тренируюсь на нём...я пока новичок и плохо представляю по каким поисковым словам искать сие потребство

Решение задачи: «При выполнении операций +, — , * и / не очищать экран»

textual
Листинг программы
  1. int secondValue = Integer.valueOf(display.getText().substring(display.getText().indexOf(operation)));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы