本文介紹了Java重繪隱藏其他面板的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有3個JPanel嵌套,如下所示:
main JPanel
{
second JPanel {}
3rd JPanel {}
main method
}
這是我在‘Main Panel’中添加它們的順序:
add(thirdPanel);
add(secondPanel);
setComponentZOrder(componentsPanel, 0);
setComponentZOrder(panel, 1);
第二個和第三個面板都有paintComponent
方法,最初的第三個面板包含buttons
等圖形用戶界面組件,它位于第二個面板的頂部(這正是我想要的),但每當(dāng)我在第二個面板中繪制或repaint
時,第三個面板中的所有組件都隱藏在第二個面板的下面。這就像是Second Panel占據(jù)了優(yōu)先地位。我基本上希望Third Panel無論如何都保持在首位。
注意:我使用的布局管理器為空。
推薦答案
重寫父面板的isOptimizedDrawingEnabled
方法并使其返回false
:
@Override
public boolean isOptimizedDrawingEnabled() {
return false;
}
如果組件的子項重疊,則此操作是必需的,否則Swing將無法正確繪制它們。
這篇關(guān)于Java重繪隱藏其他面板的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,