Ошибка в коде - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д