Непонятный 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; //Спиннер здесь, он не инициализирован за пределами конструктора, на работает. Почему так? }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д