Непонятный java.lang.NullPointerException
Формулировка задачи:
Здравствуйте.
Есть диалоговое окно, в нем 3 радиобаттона, которые объявляются в теле класса диалового окна, а инициализируются в конструкторе.
Есть поле целочисленного типа kindOfStep.
В зависимости от изначального значения поля (0, 1 или 2) по по умолчанию отмечается соответствующий радиобаттон.
Если мы отмечаем другой радиобаттон, устанавливается соответствующее значение kindOfStep.
Но диалоговое окно не запускается, так как вылетает экзепшн java.lang.NullPointerException
Почему это и что исправить?
Листинг программы
- import ...;
- public class ChangeStepOfDisplacement extends JDialog {
- /**
- * Create the dialog.
- */
- private static int kindOfStep = MainFrame.kindOfStep; //Поле kindOfStep
- private void TypeOfStep() { //Диалоговое окно
- if (kindOfStep == 0)
- rdbtnNewRadioButton.setSelected(true); //Именно то место, на которое ругается эксепшн
- else if (kindOfStep == 1)
- radioButton.setSelected(true);
- else if (kindOfStep == 2)
- radioButton_1.setSelected(true);
- }
- public ChangeStepOfDisplacement() { //Конструктор
- TypeOfStep(); //Вызов функции TypeOfStep()
- rdbtnNewRadioButton = new JRadioButton("\u041B\u0456\u043D\u0456\u0439\u043D\u0435 \u0440\u0456\u0432\u043D\u044F\u043D\u043D\u044F");
- rdbtnNewRadioButton.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent arg0) {
- kindOfStep = 0;
- }
- });
- rdbtnNewRadioButton.setFont(new Font("Verdana", Font.PLAIN, 12));
- buttonGroup.add(rdbtnNewRadioButton);
- radioButton = new JRadioButton("\u041D\u0435\u043B\u0456\u043D\u0456\u0439\u043D\u0435 \u0440\u0456\u0432\u043D\u044F\u043D\u043D\u044F");
- radioButton.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent e) {
- kindOfStep = 1;
- }
- });
- buttonGroup.add(radioButton);
- radioButton_1 = new JRadioButton("\u0413\u0430\u0441\u043B\u043E");
- radioButton_1.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent e) {
- kindOfStep = 2;
- }
- });
- buttonGroup.add(radioButton_1);
- }
- private final ButtonGroup buttonGroup = new ButtonGroup();
- private JRadioButton rdbtnNewRadioButton; //объявление радиобаттонов
- private JRadioButton radioButton;
- private JRadioButton radioButton_1;
- }
Решение задачи: «Непонятный java.lang.NullPointerException»
textual
Листинг программы
- import ...;
- public class MainPanel extends JPanel { //Панель
- private static Scrambler scrambler = new Scrambler();
- private JTextField textField;
- private void setDoing(boolean toShifr, boolean toRozshifr, boolean toDeshifr) {
- if (toDeshifr == true) {
- spinner.setVisible(false); //Спиннер прячется
- }
- else {
- spinner.setVisible(true); //Спиннер появляется
- }
- }
- public MainPanel() {
- JRadioButton radioButton = new JRadioButton("\u0428\u0438\u0444\u0440\u0443\u0432\u0430\u043D\u043D\u044F");
- radioButton.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent arg0) {
- setDoing(true, false, false);
- }
- });
- add(radioButton);
- buttonGroup.add(radioButton);
- JRadioButton radioButton_1 = new JRadioButton("\u0420\u043E\u0437\u0448\u0438\u0444\u0440\u0443\u0432\u0430\u043D\u043D\u044F");
- radioButton_1.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent e) {
- setDoing(false, true, false);
- }
- });
- add(radioButton_1);
- buttonGroup.add(radioButton_1);
- JRadioButton radioButton_2 = new JRadioButton("\u0414\u0435\u0448\u0438\u0444\u0440\u0443\u0432\u0430\u043D\u043D\u044F");
- radioButton_2.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent e) {
- setDoing(false, false, true);
- }
- });
- add(radioButton_2);
- buttonGroup.add(radioButton_2);
- label_2 = new JLabel("\u041A\u043B\u044E\u0447");
- add(label_2);
- spinner = new JSpinner();
- add(spinner);
- }
- private final ButtonGroup buttonGroup = new ButtonGroup();
- private JLabel label_2;
- private JLabel label_3;
- private JSpinner spinner; //Спиннер здесь, он не инициализирован за пределами конструктора, на работает. Почему так?
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д