У меня есть объект подкласса Canvas, который я пытаюсь добавить вместе с некоторыми другими подклассами Canvas в JLayeredPane. В документации для JLayeredPane слой указывается как целое число, например.Ошибка JLayeredPane, когда слой является целым числом
layeredPane.add(child, new Integer(0));
Однако, когда я использую Integer для слоя, я получаю некоторую ошибку времени выполнения. (Я не могу сказать, что эта ошибка, потому что мой IDE жалуется на источник отсутствие для библиотек Swing.) Как ни странно, когда я использую следующий вид:
layeredPane.add(child, 0);
линия фактически выполняет без ошибок. Я очень новичок в Java и до сих пор не понял, как работает autoboxing, чем формировать мнение о том, что он работает не очень хорошо. Я не уверен, будет ли голый 0 автобокс в этом случае.
Хотелось бы добавить более подробную информацию об этой ошибке, но я даже не вижу исключения. Я буду работать над обрезкой кода до простого примера, но я надеялся, что кто-то с опытом работы с JLayeredPane увидит это раньше.
Опубликовать [SSCCE] (http://sscce.org/), чтобы мы могли видеть, что вы делаете – MadProgrammer
См. ['Container.add (Component, int)'] (http://docs.oracle.com /javase/7/docs/api/java/awt/Container.html#add%28java.awt.Component,%20int%29). Вот откуда берётся метод, и он не претендует на принятие 'Integer', а' int'. –