【发布时间】:2011-11-23 19:58:11
【问题描述】:
我正在尝试在 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 的情况下做到这一点?这对我来说似乎是一个黑客行为。我的意思是,我真的不敢相信在布局组件时没有这样做的选项。但如果我不重写该方法,它会在顶部和左侧留下空隙。
我在这里遗漏了什么,或者这是处理这些要求的正确方法吗?
【问题讨论】:
标签: java swing jlayeredpane