Непонятный java.lang.NullPointerException

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть диалоговое окно, в нем 3 радиобаттона, которые объявляются в теле класса диалового окна, а инициализируются в конструкторе. Есть поле целочисленного типа kindOfStep. В зависимости от изначального значения поля (0, 1 или 2) по по умолчанию отмечается соответствующий радиобаттон. Если мы отмечаем другой радиобаттон, устанавливается соответствующее значение kindOfStep. Но диалоговое окно не запускается, так как вылетает экзепшн java.lang.NullPointerException Почему это и что исправить?
Листинг программы
  1. import ...;
  2. public class ChangeStepOfDisplacement extends JDialog {
  3. /**
  4. * Create the dialog.
  5. */
  6. private static int kindOfStep = MainFrame.kindOfStep; //Поле kindOfStep
  7. private void TypeOfStep() { //Диалоговое окно
  8. if (kindOfStep == 0)
  9. rdbtnNewRadioButton.setSelected(true); //Именно то место, на которое ругается эксепшн
  10. else if (kindOfStep == 1)
  11. radioButton.setSelected(true);
  12. else if (kindOfStep == 2)
  13. radioButton_1.setSelected(true);
  14. }
  15. public ChangeStepOfDisplacement() { //Конструктор
  16. TypeOfStep(); //Вызов функции TypeOfStep()
  17.  
  18. rdbtnNewRadioButton = new JRadioButton("\u041B\u0456\u043D\u0456\u0439\u043D\u0435 \u0440\u0456\u0432\u043D\u044F\u043D\u043D\u044F");
  19. rdbtnNewRadioButton.addItemListener(new ItemListener() {
  20. public void itemStateChanged(ItemEvent arg0) {
  21. kindOfStep = 0;
  22. }
  23. });
  24. rdbtnNewRadioButton.setFont(new Font("Verdana", Font.PLAIN, 12));
  25. buttonGroup.add(rdbtnNewRadioButton);
  26. radioButton = new JRadioButton("\u041D\u0435\u043B\u0456\u043D\u0456\u0439\u043D\u0435 \u0440\u0456\u0432\u043D\u044F\u043D\u043D\u044F");
  27. radioButton.addItemListener(new ItemListener() {
  28. public void itemStateChanged(ItemEvent e) {
  29. kindOfStep = 1;
  30. }
  31. });
  32. buttonGroup.add(radioButton);
  33.  
  34. radioButton_1 = new JRadioButton("\u0413\u0430\u0441\u043B\u043E");
  35. radioButton_1.addItemListener(new ItemListener() {
  36. public void itemStateChanged(ItemEvent e) {
  37. kindOfStep = 2;
  38. }
  39. });
  40. buttonGroup.add(radioButton_1);
  41. }
  42. private final ButtonGroup buttonGroup = new ButtonGroup();
  43. private JRadioButton rdbtnNewRadioButton; //объявление радиобаттонов
  44. private JRadioButton radioButton;
  45. private JRadioButton radioButton_1;
  46. }

Решение задачи: «Непонятный java.lang.NullPointerException»

textual
Листинг программы
  1. import ...;
  2. public class MainPanel extends JPanel {  //Панель
  3.     private static Scrambler scrambler = new Scrambler();
  4.     private JTextField textField;
  5.    
  6.     private void setDoing(boolean toShifr, boolean toRozshifr, boolean toDeshifr) {
  7.        
  8.         if (toDeshifr == true) {
  9.             spinner.setVisible(false);  //Спиннер прячется
  10.         }
  11.         else {
  12.             spinner.setVisible(true);   //Спиннер появляется
  13.         }
  14.     }
  15.    
  16.     public MainPanel() {
  17.        
  18.         JRadioButton radioButton = new JRadioButton("\u0428\u0438\u0444\u0440\u0443\u0432\u0430\u043D\u043D\u044F");
  19.         radioButton.addItemListener(new ItemListener() {
  20.             public void itemStateChanged(ItemEvent arg0) {
  21.                 setDoing(true, false, false);
  22.             }
  23.         });
  24.        
  25.         add(radioButton);
  26.         buttonGroup.add(radioButton);
  27.  
  28.         JRadioButton radioButton_1 = new JRadioButton("\u0420\u043E\u0437\u0448\u0438\u0444\u0440\u0443\u0432\u0430\u043D\u043D\u044F");
  29.         radioButton_1.addItemListener(new ItemListener() {
  30.             public void itemStateChanged(ItemEvent e) {
  31.                 setDoing(false, true, false);
  32.             }
  33.         });
  34.        
  35.         add(radioButton_1);
  36.         buttonGroup.add(radioButton_1);
  37.        
  38.         JRadioButton radioButton_2 = new JRadioButton("\u0414\u0435\u0448\u0438\u0444\u0440\u0443\u0432\u0430\u043D\u043D\u044F");
  39.         radioButton_2.addItemListener(new ItemListener() {
  40.             public void itemStateChanged(ItemEvent e) {
  41.                 setDoing(false, false, true);
  42.             }
  43.         });
  44.        
  45.         add(radioButton_2);
  46.         buttonGroup.add(radioButton_2);
  47.        
  48.        
  49.         label_2 = new JLabel("\u041A\u043B\u044E\u0447");
  50.         add(label_2);
  51.        
  52.         spinner = new JSpinner();
  53.         add(spinner);
  54.     }
  55.     private final ButtonGroup buttonGroup = new ButtonGroup();
  56.     private JLabel label_2;
  57.     private JLabel label_3;
  58.     private JSpinner spinner;  //Спиннер здесь, он не инициализирован за пределами конструктора, на работает. Почему так?
  59. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут