小编use*_*696的帖子

Java摆动动画摆动组件,没有性能损失

解:

是的,这是错的.永远,永远,永远,绝不读取绘画方法中的文件/图像.这种方法必须非常快,并且必须只涉及绘画,这样做,读取文件,会不必要地将GUI放慢速度.为什么这样呢?您可以在构造函数或方法中一次读取图像,然后根据需要多次重复使用paintComponent中的图像对象.

另外,您可能最好将图像作为资源而不是文件获取.

谢谢,气垫船充满了鳗鱼


我正在创建一个非常简单的'Fruit Ninja'版本.一种游戏,其中一些水果飞到屏幕上,用户必须将其切成两半.

我正在使用带有ImageIcon的JLabel作为水果.我使用摇摆计时器进行移动.

它运行得很好,也有动画,但这里是棘手的部分.当我添加背景图像时,动画是非常迟钝的.

问题是:如何添加背景图像,而摆动动画不会失去性能?

我在下面添加了一些代码.

蒂姆

我在JPanel中绘制背景图片:

public class PlayingField extends javax.swing.JPanel {

public PlayingField()
{
    this.setBounds(0, 50, 500, 500);
    this.setLayout(null);       
}

@Override
  protected void paintComponent(Graphics g) {

    super.paintComponent(g);

    BufferedImage img = null;
    try {
        img = ImageIO.read(new File(System.getProperty("user.dir")+"/assets/background.png"));
    } catch (IOException e) 
    {

    }
        g.drawImage(img, 0, 0, null);
}
}
Run Code Online (Sandbox Code Playgroud)

我正在绘制的对象只是带有ImageIcons的简单JLabel.

我有一个处理动画的计时器:

public class GameTimer extends javax.swing.Timer implements ActionListener {

GameController gameController;

public GameTimer(GameController gameController) {
    super(delay, null);
    this.addActionListener(this);
    this.gameController = gameController;

}

@Override …
Run Code Online (Sandbox Code Playgroud)

java animation swing

0
推荐指数
1
解决办法
126
查看次数

标签 统计

animation ×1

java ×1

swing ×1