Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JLayeredPane z-订单问题_Java_Swing_Type Conversion_Z Order_Jlayeredpane - Fatal编程技术网

Java JLayeredPane z-订单问题

Java JLayeredPane z-订单问题,java,swing,type-conversion,z-order,jlayeredpane,Java,Swing,Type Conversion,Z Order,Jlayeredpane,使用JLayeredPane按z顺序添加组件时,我注意到一些问题: JLayeredPane lp = getLayeredPane(); JButton top = new JButton(); ... JButton middle = new JButton(); ... JButton bottom = new JButton(); ... 效果不好: lp.add(top,2); lp.add(middle,1); lp.add(bottom,3); 效果很好: lp.add(to

使用JLayeredPane按z顺序添加组件时,我注意到一些问题:

JLayeredPane lp = getLayeredPane();

JButton top = new JButton(); ...
JButton middle = new JButton(); ...
JButton bottom = new JButton(); ...
效果不好:

lp.add(top,2);
lp.add(middle,1);
lp.add(bottom,3);
效果很好:

lp.add(top,new Integer(2));
lp.add(middle,new Integer(1));
lp.add(bottom,new Integer(3));
在这里,您可以看到它的外观:


为什么literal常量没有转换为Integer对象,并且它不能正常工作?

本质上是因为它从(容器)继承的类有一个函数,可以在其组件列表()中的给定位置添加组件,还有一个函数可以添加具有任何给定参数的组件(将传递给LayoutManager)()


为了调用正确的函数(以及JLayeredPane的LayoutManager以接收约束),参数必须是对象
整数
,而不是基本
int
,,因为它从(容器)继承的类具有在其组件列表()的给定位置添加组件的函数,以及一个函数,用于添加具有任何给定参数的组件(将传递给LayoutManager)()

为了调用正确的函数(以及JLayeredPane的LayoutManager以接收约束),参数必须是对象
整数
,而不是基元
int

为什么文字常量不能转换成整数对象,并且不能正常工作

您需要查看
add(…)
方法的API

容器
类有一个接受“int”作为参数的方法。这用于类似FlowLayout的布局,您可以在其中的指定位置插入组件

JLayeredPane
类有一个方法,该方法接受一个“整型”值来指定组件的分层

因此,不能依靠自动装箱将int转换为整数

为什么文字常量不能转换成整数对象,并且不能正常工作

您需要查看
add(…)
方法的API

容器
类有一个接受“int”作为参数的方法。这用于类似FlowLayout的布局,您可以在其中的指定位置插入组件

JLayeredPane
类有一个方法,该方法接受一个“整型”值来指定组件的分层

因此,不能依靠自动装箱将int转换为整数