我在layeredPane2
中拥有这三个面板,分别为backPanel
,overlayPanel
和popupPanel
。当我单击按钮时,我只希望看到popupPanel
(带有“已创建任务!”的那个)和overlayPanel
灰色的全尺寸框,该框应该隐藏{{1 }}。这是起始屏幕,只有backPanel
可见。
在左上角,我不为什么,但是有可见的按钮和文本字段。此外,createBtn
按钮不会隐藏。此外,Create
上的元素可以这样访问:
这是我的代码:
backPanel
我尝试了popupPanel.setVisible(true);
overlayPanel.setVisible(true);
,但这没有帮助。
感谢您的帮助!
编辑:
backPanel.setFocusable(false);
元素的层次结构-
答案 0 :(得分:0)
如果不查看组件层次结构,就很难回答有关杂散和可见对象的问题。这只是答案的一部分。
我假设您有一个带有OverlayLayout
的面板。如何指定Z层位置是一个常见的陷阱:
add(popupPanel, 800); // Doesn't work
add(popupPanel, Integer.valueOf(800)); // Works
您可以通过以下方式阻止点击进入下面板:
// Prevent click-through to lower layers
popupPanel.addMouseListener(new MouseInputAdapter() { });
此外,如果您还想在用户单击面板外部的黑色区域时关闭面板,则它会变成这样:
MouseListener closeAdapter = new MouseInputAdapter() {
@Override
public void mouseClicked(MouseEvent ignored) {
popupPanel.setVisible(false);
}
};
popupPanel.addMouseListener(closeAdapter);
// Prevent click-through to lower layers
taskCreatedPanel.addMouseListener(new MouseInputAdapter() { });