Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 3 / 0
Регистрация: 22.03.2015
Сообщений: 55

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

27.09.2015, 15:04. Показов 1153. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть диалоговое окно, в нем 3 радиобаттона, которые объявляются в теле класса диалового окна, а инициализируются в конструкторе.
Есть поле целочисленного типа kindOfStep.
В зависимости от изначального значения поля (0, 1 или 2) по по умолчанию отмечается соответствующий радиобаттон.
Если мы отмечаем другой радиобаттон, устанавливается соответствующее значение kindOfStep.
Но диалоговое окно не запускается, так как вылетает экзепшн java.lang.NullPointerException
Почему это и что исправить?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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;
    
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2015, 15:04
Ответы с готовыми решениями:

java.lang.NullPointerException
Всем привет! В Яве совсем недавно... вот и возникла проблема... Формулировка задачи... учет выставленных договоров компании......

Ошибка java.lang.NullPointerException
Подскажите пожалуйста, как исправить Вот код package test; import javax.swing.JButton; import javax.swing.JTextField; ...

Ошибка Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Помогите пожалуйста package pr; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JButton; ...

4
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
27.09.2015, 15:09
Муравей, Вы вызываете метод TypeOfStep(); раньше, чем инициализируется rdbtnNewRadioButton.
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.09.2015, 15:10
Цитата Сообщение от Муравей Посмотреть сообщение
TypeOfStep(); * //Вызов функции TypeOfStep()
Вызов метода находится раньше по коду, чем инициализация радиобаттонов.
1
3 / 3 / 0
Регистрация: 22.03.2015
Сообщений: 55
27.09.2015, 15:53  [ТС]
Спасибо.
Но в таком случае, прошу ответить на еще один вопрос
Была похожая задача. Есть Панель. В панели три Радиобаттона и одни Спиннер.
При отмечании радиобаттона вызывается функция setDoing(), в которой 3 параметра логического типа. Когда один из параметров равен true, Спиннер "прячется", когда нет- появляется.
Суть в чем- спиннер тоже не был инициализирован, но все работало.
Объясните пожалуйста, почему так.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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;  //Спиннер здесь, он не инициализирован за пределами конструктора, на работает. Почему так?
}
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.09.2015, 18:54
Цитата Сообщение от Муравей Посмотреть сообщение
за пределами конструктора, на работает. Почему так?
потому что в конструкторе он инициализируется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2015, 18:54
Помогаю со студенческими работами здесь

Исключение Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Подскажите, отчего выдается исключение при нажатии на кнопку. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException...

Как исправить Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Здравствуйте, я новичок в Java. Пишу программу для решения тестов. Суть программ в том, что по нажатии кнопки "создать"...

JIDEFX MaskTextField java.lang.NoSuchMethodError: java.lang.invoke.LambdaMetafactory.metaFactory
Имеется тестовое приложение: package testinputmask; import javafx.application.Application; import javafx.scene.Scene; import...

Апплет,java.lang.RuntimeException: java.lang.NoClassDefFoundError
апплет использует сторонние подключенные либы, при его загрузке вылетает такой вот эксепшн.... java.lang.RuntimeException:...

Exception in thread "main" java.lang.IllegalArgumentException: illegal component position at java.desktop/java.awt.Cont
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru