我想覆盖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
?这对我来说似乎是一个黑客。我的意思是,我真的不敢相信,在布置组件时没有办法做到这一点。但如果我不覆盖这个方法,它会在顶部和左侧留下空隙。
我在这里错过了什么,或者这是处理这些要求的正确方法吗?