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

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

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

Только начала изучать Java. И в задании сказано, что нужно, чтобы все кнопки с цифрами хранились в массиве. Я это сделала, но при компиляции выдается ошибка. Никак не пойму, что не так.
package simplecalculator;
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.BorderLayout;
public class Calculator {
// Объявление всех компонентов калькулятора.
JPanel windowContent;
JFormattedTextField displayField;
JButton button0;
JButton button1;
JButton button2;
JButton button3;
JButton button4;
JButton button5;
JButton button6;
JButton button7;
JButton button8;
JButton button9;
JButton buttonPoint;
JButton buttonEqual;
JButton buttonPlus;
JButton buttonMinus;
JButton buttonDivision;
JButton buttonMultiplication;
 
JPanel p1;
JPanel p2;
 // В конструкторе создаются все компоненты
 // и добавляются на фрейм с помощью комбинации
 // Borderlayout и Gridlayout
 Calculator(){
 windowContent= new JPanel();
// Задаём схему для этой панели
 BorderLayout bl = new BorderLayout();
 windowContent.setLayout(bl);
 // Создаём и отображаем поле
 // Добавляем его в Северную область окна
displayField = new JFormattedTextField();
displayField.setHorizontalAlignment(SwingConstants.RIGHT);
windowContent.add("North",displayField);
 // Создаём кнопки, используя конструктор
 // класса JButton, который принимает текст
 // кнопки в качестве параметра
 JButton[] button = new JButton[10];
 
 for (int i = 0; i < 10; i++){
    button[i]=new JButton(""+i); 
 }

 buttonPoint = new JButton(".");
 buttonEqual=new JButton("=");
 buttonPlus=new JButton("+");
 buttonMinus=new JButton("-");
 buttonDivision=new JButton("/");
 buttonMultiplication=new JButton("*");
 // Создаём панель с GridLayout
 // которая содержит 12 кнопок - 10 кнопок с числами
 // и кнопки с точкой и знаком равно
 p1 = new JPanel();
 GridLayout gl =new GridLayout(4,3);
 p1.setLayout(gl);
 // Добавляем кнопки на панель p1
p1.add(button1);
 p1.add(button2);
 p1.add(button3);
 p1.add(button4);
 p1.add(button5);
 p1.add(button6);
 p1.add(button7);
 p1.add(button8);
 p1.add(button9);
 p1.add(button0);
 p1.add(buttonPoint);
 p1.add(buttonEqual);
 
 p2 = new JPanel();
 GridLayout g2 = new GridLayout(4,1);
 p2.setLayout(g2);
 
 p2.add(buttonPlus);
 p2.add(buttonMinus);
 p2.add(buttonDivision);
 p2.add(buttonMultiplication);
 
 windowContent.add("East",p2);
 
 // Помещаем панель p1 в центральную область окна
 windowContent.add("Center",p1);
 //Создаём фрейм и задаём его основную панель
 JFrame frame = new JFrame("Calculator");
 frame.setContentPane(windowContent);
 // делаем размер окна достаточным
 // для того, чтобы вместить все компоненты
 frame.pack();
 // Наконец, отображаем окно
 frame.setVisible(true);
}
 public static void main(String[] args) {
Calculator calc = new Calculator();
 }
}

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

textual
Листинг программы
import javax.swing.*;
import java.awt.*;
 
public class Calculator {
    // Объявление всех компонентов калькулятора.
    JPanel windowContent;
    JFormattedTextField displayField;
    JButton buttonPoint;
    JButton buttonEqual;
    JButton buttonPlus;
    JButton buttonMinus;
    JButton buttonDivision;
    JButton buttonMultiplication;
 
    JPanel p1;
    JPanel p2;
 
    Calculator() {
        windowContent = new JPanel();
        BorderLayout bl = new BorderLayout();
        windowContent.setLayout(bl);
        displayField = new JFormattedTextField();
        displayField.setHorizontalAlignment(SwingConstants.RIGHT);
        windowContent.add("North", displayField);
        JButton[] buttons = new JButton[10];
 
        for (int i = 0; i < 10; i++) {
            buttons[i] = new JButton(String.valueOf(i));
            final int finalI = i;
            buttons[i].addActionListener(
                    (e) ->
                            displayField.setText(displayField.getText() + finalI)
            );
        }
 
 
        buttonPoint = new JButton(".");
        buttonEqual = new JButton("=");
        buttonPlus = new JButton("+");
        buttonMinus = new JButton("-");
        buttonDivision = new JButton("/");
        buttonMultiplication = new JButton("*");
        // Создаём панель с GridLayout
        // которая содержит 12 кнопок - 10 кнопок с числами
        // и кнопки с точкой и знаком равно
        p1 = new JPanel();
        GridLayout gl = new GridLayout(4, 3);
        p1.setLayout(gl);
        // Добавляем кнопки на панель p1
        for (JButton button : buttons) {
            p1.add(button);
        }
 
        p1.add(buttonPoint);
        p1.add(buttonEqual);
 
        p2 = new JPanel();
        GridLayout g2 = new GridLayout(4, 1);
        p2.setLayout(g2);
 
        p2.add(buttonPlus);
        p2.add(buttonMinus);
        p2.add(buttonDivision);
        p2.add(buttonMultiplication);
 
        windowContent.add("East", p2);
 
        // Помещаем панель p1 в центральную область окна
        windowContent.add("Center", p1);
        //Создаём фрейм и задаём его основную панель
        JFrame frame = new JFrame("Calculator");
        frame.setContentPane(windowContent);
        // делаем размер окна достаточным
        // для того, чтобы вместить все компоненты
        frame.pack();
        // Наконец, отображаем окно
        frame.setVisible(true);
    }
 
    public static void main(String[] args) {
        Calculator calc = new Calculator();
    }
}

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


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

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

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