Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 1 год назад.
в строке Calculator() ошибка, которая не даёт запустить программу. Кроме этого всё верно, вроде как. В чём проблема?
import javax.swing.*;
import java.awt.*;
public class Class {
public static void main(String[] args) {
JPanel windowContent;
JTextField displayField;
JButton button0 = null;
JButton button1 = null;
JButton button2 = null;
JButton button3 = null;
JButton button4 = null;
JButton button5 = null;
JButton button6 = null;
JButton button7 = null;
JButton button8 = null;
JButton button9 = null;
JButton buttonPoint;
JButton buttonEqual;
JPanel pl;
Calculator() {
windowContent = new JPanel();
BorderLayout bl = new BorderLayout();
windowContent.setLayout(bl);
displayField = new JTextField(30);
windowContent.add("North", displayField);
button0 = new JButton("0");
button0 = new JButton("1");
button0 = new JButton("2");
button0 = new JButton("3");
button0 = new JButton("4");
button0 = new JButton("5");
button0 = new JButton("6");
button0 = new JButton("7");
button0 = new JButton("8");
button0 = new JButton("9");
buttonPoint = new JButton(".");
buttonEqual = new JButton("=");
pl = new JPanel();
GridLayout gl = new GridLayout(4, 3);
pl.setLayout(gl);
pl.add(button1);
pl.add(button2);
pl.add(button3);
pl.add(button4);
pl.add(button5);
pl.add(button6);
pl.add(button7);
pl.add(button8);
pl.add(button9);
pl.add(button0);
pl.add(buttonPoint);
pl.add(buttonEqual);
windowContent.add("Center",pl);
JFrame frame = new JFrame("Calculator");
frame.setContentPane(windowContent);
frame.pack();
frame.setVisible(true);
}
}
}```
Прежде всего, следует обратить внимание на то, что панель, кнопки и текстовое поле инициализированы в main(), в то время, как они могут быть или в полях или в конструкторе, чтобы программа работала в этом случае. Calculator(), судя по всему, является конструктором, в таком случае имя класса должно называться Calculator, либо Calculator(), т.е. конструктор надо переименовать в Class(). Сам конструктор находится внутри мейна, поэтому программа работать не будет вовсе. Для этого его нужно вынести из этого метода. В самом конструкторе 10 раз переинициализируется кнопка "0", остальные кнопки null, поэтому и вылетает NullPointerException. В методе мейн также надо создать экземпляр того же класса.
import javax.swing.*;
import java.awt.*;
public class Calculator {
JPanel windowContent;
JTextField displayField;
JButton button0 = null;
JButton button1 = null;
JButton button2 = null;
JButton button3 = null;
JButton button4 = null;
JButton button5 = null;
JButton button6 = null;
JButton button7 = null;
JButton button8 = null;
JButton button9 = null;
JButton buttonPoint;
JButton buttonEqual;
JPanel pl;
public static void main(String[] args) {
Calculator m = new Calculator();
}
Calculator() {
windowContent = new JPanel();
BorderLayout bl = new BorderLayout();
windowContent.setLayout(bl);
displayField = new JTextField(30);
windowContent.add("North", displayField);
button0 = new JButton("0");
button1 = new JButton("1");
button2 = new JButton("2");
button3 = new JButton("3");
button4 = new JButton("4");
button5 = new JButton("5");
button6 = new JButton("6");
button7 = new JButton("7");
button8 = new JButton("8");
button9 = new JButton("9");
buttonPoint = new JButton(".");
buttonEqual = new JButton("=");
pl = new JPanel();
GridLayout gl = new GridLayout(4, 3);
pl.setLayout(gl);
pl.add(button1);
pl.add(button2);
pl.add(button3);
pl.add(button4);
pl.add(button5);
pl.add(button6);
pl.add(button7);
pl.add(button8);
pl.add(button9);
pl.add(button0);
pl.add(buttonPoint);
pl.add(buttonEqual);
windowContent.add("Center",pl);
JFrame frame = new JFrame("Calculator");
frame.setContentPane(windowContent);
frame.pack();
frame.setVisible(true);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне нужно с помощью регулярки образать все нули спереди, и один ноль в концеНаписал вот такую регулярку, но она работает не правильно str