Код, который вы опубликовали, НЕ является SSCCE!
Ваш вопрос касается ItemListener, так почему вы опубликовали код, связанный с MouseListener и MouseMotionListener? Какое отношение имеет пользовательский код рисования к вашей проблеме?
Откуда вы знаете, что код ItemListener не вызывается? Вы добавили оператор System.out.println (...) в код слушателя? Сначала проверьте свой код, используя «appletviewer». Это проще, чем с помощью браузера. Все, что вы делаете из командной строки:
appletviewer P6.html
Или мне проще протестировать апплет, даже не создавая HTML-файл. Вы можете добавить следующую строку кода в начало вашего исходного файла:
// <applet code="P6.class" width="800" height="600"></applet>
Теперь с помощью команды вы можете протестировать апплет, просто используя:
appletviewer P6.java
Проблема с вашим кодом в том, что ваши переключатели определены как классовые и локальные переменные. ItemListener генерирует исключение NullPointerException, поскольку переменные класса имеют значение null.
JRadioButton jrbOval = new JRadioButton("Oval");
должно быть:
jrbOval = new JRadioButton("Oval");
Кроме того, вы не должны переопределять метод paint () в JApplet. Настраиваемое рисование выполняется путем переопределения метода paintComponent () в JPanel. Затем вы добавляете панель к апплету.