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