Ошибка в коде - 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();
}
}