图层为整数时出现JLayeredPane错误

时间:2013-08-22 23:29:23

标签: java swing autoboxing jlayeredpane

我有一个Canvas子类对象,我正在尝试将其与其他一些Canvas子类一起添加到JLayeredPane。在JLayeredPane的文档中,该层以Integer形式给出,例如

layeredPane.add(child, new Integer(0));

但是,当我对图层使用Integer时,会出现某种运行时错误。 (我无法确定这个错误是什么,因为我的IDE一直在抱怨Swing库的缺乏来源。)奇怪的是,当我使用以下形式时:

layeredPane.add(child, 0);

该行实际上执行无错误。我对Java很新,但仍然没有弄清楚自动装箱是如何工作的,除了形成它不能很好地工作的意见。在这种情况下,我不确定裸0是否会被自动装箱。

我希望我可以添加有关此错误的更多详细信息,但我甚至没有看到异常。我将修改我的代码到一个简单的例子,但我希望有一个有JLayeredPane经验的人以前见过这个。

2 个答案:

答案 0 :(得分:0)

不幸的是我无法添加评论所以我会留下回复。 如果您使用IDE,那么您可以使用设计表单轻松创建GUI,只需拖放即可...

我使用过JLayeredPane,如果你添加组件,你可以手动使用添加方法,如layeredPane.add(Component, javax.swing.JLayeredPane.PALETTE_LAYER);layeredPane.add(Component, javax.swing.JLayeredPane.DEFAULT_LAYER);

使用静态常量Integer字段并阅读JLayeredPane API,或在oracle上使用它的一些示例。这是一个很好的学习特色。

答案 1 :(得分:0)

这个错误与我在JLayeredPane上使用BorderLayout的事实有关。当我改为另一种布局时,错误就消失了。