【发布时间】:2019-07-28 08:57:04
【问题描述】:
我有一个使用 OverlayLayout 布局管理器的父 JPanel,并且 JPanel 包含一个主面板和覆盖面板。
例如
setLayout(new OverlayLayout(this));
add(overlayPanel)
add(mainPanel);
这工作正常,但主面板包含许多我无法控制的组件,并且很多组件已经覆盖了paintComponent,当它们重新绘制时,它们最终会绘制在覆盖面板的顶部。
如果我随后调整整个窗口的大小,则 2 个面板会正确堆叠显示。有没有办法可以防止这种情况发生或收到子组件已重绘的通知,以便我可以重绘整个窗口?
我确实尝试过使用 JLayeredPane,但我很挣扎,因为主窗口可以调整大小,并且由于它不使用 LayoutManager,我不得不设置边界,我很难让它工作。
【问题讨论】: