【发布时间】:2018-05-23 06:57:24
【问题描述】:
我正在使用 java swing 制作 pacman 游戏。 在我的代码中,我在组件面板中使用了 2 个 jpanels 第一个用于地图,第二个用于 pacman。 现在我试图在单击按钮时将 pacman 移动到其他单元格。它被移动但旧图片没有被删除。image before clicking,image after clicking 如您所见,新的 pacman 出现了,但旧的并没有消失。一些垃圾也出现了。 这是为 pacman 创建 jpanel 的代码
JLabel pacman = new JLabel("", new ImageIcon("pacman.png"), JLabel.CENTER);
player = new JPanel(new BorderLayout());
player.setBounds(n*1, n*1, n, n);
//pacman.setOpaque(true);
pacman.setBackground(new Color(0, 0, 0, 0));
player.add(pacman);
//player.setOpaque(true);
player.setBackground(new Color(0, 0, 0, 0));
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 1000, 1000);
panel.setLayout(null);
panel.add(player);
panel.setBackground(new Color(0, 0, 0,0));
contentPane.add(panel);
按钮actionPreformed方法里面的代码是:
panel.remove(player);
player.setLocation(new Point(n*1, n*2));
panel.add(player);
panel.revalidate();
panel.repaint();
我怎样才能让老吃豆人消失?
【问题讨论】:
-
Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同的语言环境中的不同 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
标签: java swing jframe jpanel refresh