TITLE:Cursorのアニメーション

Cursorのアニメーション

Posted by terai at 2006-05-01

概要

マウスカーソルをアニメーションさせます。

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

list[0] = tk.createCustomCursor(tk.createImage(url00), p, "00");
list[1] = tk.createCustomCursor(tk.createImage(url01), p, "01");
list[2] = tk.createCustomCursor(tk.createImage(url02), p, "02");
setCursor(list[0]);
animator = new javax.swing.Timer(100, new ActionListener() {
  private int count = 0;
  public void actionPerformed(ActionEvent e) {
    setCursor(list[count]);
    count = (count<list.length-1)?count+1:0;
  }
});
JButton button = new JButton(new AbstractAction("スタート") {
  public void actionPerformed(ActionEvent e) {
    JButton button = (JButton)e.getSource();
    if(animator.isRunning()) {
      button.setText("スタート");
      animator.stop();
    }else{
      button.setText("ストップ");
      animator.start();
    }
  }
});

解説

上記のサンプルでは、ボタンをクリックすると、パネル上にあるカーソルがアニメーションするようになっています。3枚の透過pngファイルをコマにして、Timerで順番にこれを切り替えています。

各コマは、ぶーん(通常の選択.ani、VIPポインター)から、ANIめーかーを使って生成しています。

参考リンク

コメント

  • Cursorに用いるpngファイルは、フルカラー(24ビット)ではなく256色にしておかないと、うまく透過できないようです。もしかしたら自分のPCの画面の色が16ビットになっているせいかもしれません。 -- terai
    • 32ビットにしてもだめみたいです。 -- terai
  • Windows XP で、カーソルをAnimated GIF ファイルから生成(Toolkit.getDefaultToolkit().createCustomCursor)しようとすると、落ちる? Ubuntuだと、アニメーションはしないけど、ちゃんと画像がカーソルになる。 -- terai
    • デッドロック? -- terai