Несмотря на то, что в целом отсутствует весь контекст, мне нужно что-то указать.
С тех пор как Java 1.4 или около того, всех Graphics
объектов, передаваемых между paint
, paintComponent
, paintBackground
, paintChildren
и этажеркой стали, по сути, Graphics2D
объектов. Это широко считается фактом (Graphics
== Graphics2D
).
Однако некоторые из ваших компонентов, по-видимому, используют setDebugGraphicsOptions(int). Это делает так, что прежний «факт» больше не верен. Если у вас есть надежная реализация (например, проверка instanceof Graphics2D
), вы заметите, что, например, RenderingHints
(доступно только на Graphics2D
) больше не применяются при использовании отладочной графики. В противном случае он будет терпеть неудачу с точным исключением, которое вы получаете.
Было бы очевидно, что весь ваш код предполагает, что Graphics
являются Graphics2D
. Поэтому вам нужно либо прекратить использование графических параметров отладки, либо вручную исправить все переопределенные методы paintComponent
.
убедитесь, что никто не знает на основе/из этого описания, исключения – mKorbel