我想覆蓋JPanel
頂部的自定義透明度。我希望這兩個組件都擴展到分層窗格的邊緣。我已經覆蓋了頂層組件的paintComponent
方法,除了當我想顯示覆蓋層時通常什麼也不做。然後它在合適的位置繪製適當的文字。這是在一個面板中覆蓋多個組件的正確方法嗎?
這裏是我的佈局問題的解決方案:
JLayeredPane jlp = new JLayeredPane();
jlp.setLayout(new OverlayLayout(jlp) {
@Override
public void layoutContainer(Container target) {
for (Component c: target.getComponents())
c.setBounds(0, 0, target.getWidth(), target.getHeight());
}
});
的問題是 - 有沒有更好的方式來做到這一點沒有覆蓋layoutContainer
?這對我來說似乎是一個黑客。我的意思是,我真的不敢相信,在佈置組件時沒有辦法做到這一點。但如果我不覆蓋這個方法,它會在頂部和左側留下空隙。
我在這裏錯過了什麼,或者這是處理這些要求的正確方法嗎?