java将两个活动JPanel层叠在一起
我试图创建一个简单的动画,让游泳者沿着水下的路径。我有两个JPanel——一个是游泳运动员,一个是背景。两者都处于活动状态,游泳者正在移动四肢,背景中有鱼/障碍物需要更新
我试图把游泳者置于背景之上。我试图使用JLayeredPane,所以我创建了两个层并添加它们:
JLayeredPane lp = frame.getLayeredPane();
lp.setPreferredSize(new Dimension(650, 550));
underwaterScene.setSize(lp.getPreferredSize());
underwaterScene.setLocation(0,0);
swimmer.setSize(lp.getPreferredSize());
swimmer.setLocation(0,0);
swimmer.setOpaque(false);
lp.add(underwaterScene, Integer.valueOf(1));
lp.add(swimmer, Integer.valueOf(2));
游泳者的paintComponent方法只是将游泳者画到正确的位置:
g.drawImage(swimmer.sprite, swimmer.x, swimmer.y, 150, 100, null);
目前,我只看到游泳层。如果我移除lp。添加(游泳者…打电话,然后我可以看到背景层,所以我知道它正在添加
我的问题是:为什么游泳者出现在背景之上时没有完全阻挡它
提前感谢您的帮助
# 1 楼答案
下面是一个有效的例子
此外,你可以在这里找到它的上下文: https://github.com/fzoli/RemoteControlCar/blob/master/desktop/BrowserTest/src/ConstrainVisibility.java#L58