我希望将JLayers的实例彼此堆叠在一起以获得分层效果,但是它们似乎不想那样工作。我想用多个JPanel类实现的多个效果来装饰单个LayerUI<JPanel>

例如

frame.add(new JLayer<>(panel, new LayerUI<> ...));
frame.add(new JLayer<>(panel, new LayerUI<> ...));


new JLayer的参数是相同的JPanel实例,但LayerUI实例具有不同的作用。

看来最后一个增加了胜利。它们都直接引用paint方法中的上下文,也许就是这样。

有关Oracle的教程,请参见here

最佳答案

我不熟悉JLayer,因为它是Java 1.7的新功能。

但是,您可以编写自己的Layer类,其中包含BufferedImage和z级别。

您的draw方法将通过“层列表”或“层图”,并以z级顺序在JPanel上绘制它们。

10-07 13:40