• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:Cursorのアニメーション
#navi(../)
*Cursorのアニメーション [#j7158da4]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2006-05-01~
更新日:&lastmod;
Posted by [[terai]] at 2006-05-01

#contents

**概要 [#h001fd76]
マウスカーソルをアニメーションさせます。

-&jnlp;
-&jar;
-&zip;

#screenshot

**サンプルコード [#h16203df]
#code{{
 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();
     }
   }
 });
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();
    }
  }
});
}}
-&jnlp;
-&jar;
-&zip;

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

各コマは、[[ぶーん(通常の選択.ani、VIPポインター)>http://www11.atwiki.jp/vippointer/pages/11.html]]から、[[ANIめーかー>http://www.vector.co.jp/soft/win95/amuse/se195017.html]]を使って生成しています。
各コマは、[[ぶーん(通常の選択.ani、VIPポインター)>http://www11.atwiki.jp/vippointer/pages/54.html]]から、[[ANIめーかー>http://www.vector.co.jp/soft/win95/amuse/se195017.html]]を使って生成しています。

**参考リンク [#bf958cfb]
-[[VIPポインター@Wiki - トップページ>http://www11.atwiki.jp/vippointer/]]
-[[ANIめーかー(Windows95/98/Me/アミューズメント)>http://www.vector.co.jp/soft/win95/amuse/se195017.html]]
-[[Cursorオブジェクトの生成>Swing/CustomCursor]]
-[[oreilly.co.jp -- Online Catalog: Java Swing Hacks>http://www.oreilly.co.jp/books/4873112788/download.html]]

**コメント [#q9ef944e]
- Cursorに用いるpngファイルは、フルカラー(24ビット)ではなく256色にしておかないと、うまく透過できないようです。もしかしたら自分のPCの画面の色が16ビットになっているせいかもしれません。 -- [[terai]] &new{2006-07-11 (火) 12:41:59};
-- 32ビットにしてもだめみたいです。 -- [[terai]] &new{2006-07-25 (火) 16:53:29};
- Windows XP で、カーソルをAnimated GIF ファイルから生成(Toolkit.getDefaultToolkit().createCustomCursor)しようとすると、落ちる? Ubuntuだと、アニメーションはしないけど、ちゃんと画像がカーソルになる。 -- [[terai]] &new{2007-05-08 (火) 14:25:37};

#comment