Ошибка в коде - Java (241195)

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

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

Только начала изучать Java. И в задании сказано, что нужно, чтобы все кнопки с цифрами хранились в массиве. Я это сделала, но при компиляции выдается ошибка. Никак не пойму, что не так.
Листинг программы
  1. package simplecalculator;
  2. import javax.swing.*;
  3. import java.awt.GridLayout;
  4. import java.awt.BorderLayout;
  5. public class Calculator {
  6. // Объявление всех компонентов калькулятора.
  7. JPanel windowContent;
  8. JFormattedTextField displayField;
  9. JButton button0;
  10. JButton button1;
  11. JButton button2;
  12. JButton button3;
  13. JButton button4;
  14. JButton button5;
  15. JButton button6;
  16. JButton button7;
  17. JButton button8;
  18. JButton button9;
  19. JButton buttonPoint;
  20. JButton buttonEqual;
  21. JButton buttonPlus;
  22. JButton buttonMinus;
  23. JButton buttonDivision;
  24. JButton buttonMultiplication;
  25. JPanel p1;
  26. JPanel p2;
  27. // В конструкторе создаются все компоненты
  28. // и добавляются на фрейм с помощью комбинации
  29. // Borderlayout и Gridlayout
  30. Calculator(){
  31. windowContent= new JPanel();
  32. // Задаём схему для этой панели
  33. BorderLayout bl = new BorderLayout();
  34. windowContent.setLayout(bl);
  35. // Создаём и отображаем поле
  36. // Добавляем его в Северную область окна
  37. displayField = new JFormattedTextField();
  38. displayField.setHorizontalAlignment(SwingConstants.RIGHT);
  39. windowContent.add("North",displayField);
  40. // Создаём кнопки, используя конструктор
  41. // класса JButton, который принимает текст
  42. // кнопки в качестве параметра
  43. JButton[] button = new JButton[10];
  44. for (int i = 0; i < 10; i++){
  45. button[i]=new JButton(""+i);
  46. }
  47.  
  48. buttonPoint = new JButton(".");
  49. buttonEqual=new JButton("=");
  50. buttonPlus=new JButton("+");
  51. buttonMinus=new JButton("-");
  52. buttonDivision=new JButton("/");
  53. buttonMultiplication=new JButton("*");
  54. // Создаём панель с GridLayout
  55. // которая содержит 12 кнопок - 10 кнопок с числами
  56. // и кнопки с точкой и знаком равно
  57. p1 = new JPanel();
  58. GridLayout gl =new GridLayout(4,3);
  59. p1.setLayout(gl);
  60. // Добавляем кнопки на панель p1
  61. p1.add(button1);
  62. p1.add(button2);
  63. p1.add(button3);
  64. p1.add(button4);
  65. p1.add(button5);
  66. p1.add(button6);
  67. p1.add(button7);
  68. p1.add(button8);
  69. p1.add(button9);
  70. p1.add(button0);
  71. p1.add(buttonPoint);
  72. p1.add(buttonEqual);
  73. p2 = new JPanel();
  74. GridLayout g2 = new GridLayout(4,1);
  75. p2.setLayout(g2);
  76. p2.add(buttonPlus);
  77. p2.add(buttonMinus);
  78. p2.add(buttonDivision);
  79. p2.add(buttonMultiplication);
  80. windowContent.add("East",p2);
  81. // Помещаем панель p1 в центральную область окна
  82. windowContent.add("Center",p1);
  83. //Создаём фрейм и задаём его основную панель
  84. JFrame frame = new JFrame("Calculator");
  85. frame.setContentPane(windowContent);
  86. // делаем размер окна достаточным
  87. // для того, чтобы вместить все компоненты
  88. frame.pack();
  89. // Наконец, отображаем окно
  90. frame.setVisible(true);
  91. }
  92. public static void main(String[] args) {
  93. Calculator calc = new Calculator();
  94. }
  95. }

Решение задачи: «Ошибка в коде»

textual
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3.  
  4. public class Calculator {
  5.     // Объявление всех компонентов калькулятора.
  6.     JPanel windowContent;
  7.     JFormattedTextField displayField;
  8.     JButton buttonPoint;
  9.     JButton buttonEqual;
  10.     JButton buttonPlus;
  11.     JButton buttonMinus;
  12.     JButton buttonDivision;
  13.     JButton buttonMultiplication;
  14.  
  15.     JPanel p1;
  16.     JPanel p2;
  17.  
  18.     Calculator() {
  19.         windowContent = new JPanel();
  20.         BorderLayout bl = new BorderLayout();
  21.         windowContent.setLayout(bl);
  22.         displayField = new JFormattedTextField();
  23.         displayField.setHorizontalAlignment(SwingConstants.RIGHT);
  24.         windowContent.add("North", displayField);
  25.         JButton[] buttons = new JButton[10];
  26.  
  27.         for (int i = 0; i < 10; i++) {
  28.             buttons[i] = new JButton(String.valueOf(i));
  29.             final int finalI = i;
  30.             buttons[i].addActionListener(
  31.                     (e) ->
  32.                             displayField.setText(displayField.getText() + finalI)
  33.             );
  34.         }
  35.  
  36.  
  37.         buttonPoint = new JButton(".");
  38.         buttonEqual = new JButton("=");
  39.         buttonPlus = new JButton("+");
  40.         buttonMinus = new JButton("-");
  41.         buttonDivision = new JButton("/");
  42.         buttonMultiplication = new JButton("*");
  43.         // Создаём панель с GridLayout
  44.         // которая содержит 12 кнопок - 10 кнопок с числами
  45.         // и кнопки с точкой и знаком равно
  46.         p1 = new JPanel();
  47.         GridLayout gl = new GridLayout(4, 3);
  48.         p1.setLayout(gl);
  49.         // Добавляем кнопки на панель p1
  50.         for (JButton button : buttons) {
  51.             p1.add(button);
  52.         }
  53.  
  54.         p1.add(buttonPoint);
  55.         p1.add(buttonEqual);
  56.  
  57.         p2 = new JPanel();
  58.         GridLayout g2 = new GridLayout(4, 1);
  59.         p2.setLayout(g2);
  60.  
  61.         p2.add(buttonPlus);
  62.         p2.add(buttonMinus);
  63.         p2.add(buttonDivision);
  64.         p2.add(buttonMultiplication);
  65.  
  66.         windowContent.add("East", p2);
  67.  
  68.         // Помещаем панель p1 в центральную область окна
  69.         windowContent.add("Center", p1);
  70.         //Создаём фрейм и задаём его основную панель
  71.         JFrame frame = new JFrame("Calculator");
  72.         frame.setContentPane(windowContent);
  73.         // делаем размер окна достаточным
  74.         // для того, чтобы вместить все компоненты
  75.         frame.pack();
  76.         // Наконец, отображаем окно
  77.         frame.setVisible(true);
  78.     }
  79.  
  80.     public static void main(String[] args) {
  81.         Calculator calc = new Calculator();
  82.     }
  83. }

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


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

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

7   голосов , оценка 4.143 из 5

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

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

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