我有3个Jpanel嵌套如下:
main JPanel
{
second JPanel {}
3rd JPanel {}
main method
}
这是我在“主面板”中添加的顺序:
add(thirdPanel);
add(secondPanel);
setComponentZOrder(componentsPanel, 0);
setComponentZOrder(panel, 1);
第二个和第三个面板都有paintComponent
个方法,最初包含GUI组件的第三个面板(如buttons
等)位于第二个面板的顶部(这就是我想要的)但每当我绘制时或者在第二个面板中repaint
,第三个面板中的所有组件都隐藏在第二个面板下面。这就像secondPanel正在优先考虑。我基本上希望第三个面板无论如何都能保持领先。
注意:我使用的是null布局管理器。
答案 0 :(得分:2)
覆盖父面板的isOptimizedDrawingEnabled
方法并让其返回false
:
@Override
public boolean isOptimizedDrawingEnabled() {
return false;
}
如果某个组件的子项重叠,则必须执行此操作,否则Swing将无法正确绘制它们。