JLayeredPane中的包装方法



我正在创建一个贪吃蛇游戏,我需要使用一个可容纳2个Jpanel的JLayeredPane,然后将这个JLayeredPane插入到JFrame中。我这样做的原因是因为我需要基础层 - 游戏,在上面一层,它将在棋盘上生成水果。我不直接在棋盘上这样做的原因是因为棋盘不断被重新粉刷,我需要一种方法在玩家每次收集水果时随机改变水果的颜色。然而,随着木板被重新粉刷,水果会不断改变颜色,并根据数组生成新的随机颜色。

简单地使用 JLayeredPane 的问题在于我需要框架与其中的组件完美契合,setPreferredSize 似乎没有这样做,因为它没有考虑插入。当 setResize(false) 时,插图与实际插图值不匹配,所以我不能简单地添加插图。

所以我的问题,我如何让 JLayeredPane 适合这些 JPanels 中的组件具有尺寸的 JPanel,然后将这个 JLayeredPane 放入 JFrame。

如何使用分层窗格:设置组件在其深度内的位置所示,使用 setBounds()JLayeredPane中定位组件。

或者,覆盖JCOmponentJPanel中的paintComponent(),并将水果层渲染到蛇层下方。如果不需要重新采样,在这种情况下,drawImage()速度非常快。

最新更新