TITLE:Cursorのアニメーション
Posted by terai at 2006-05-01

Cursorのアニメーション

マウスカーソルをアニメーションさせます。
  • category: swing folder: AnimatedCursor title: Cursorのアニメーション tags: [Cursor, Animation] author: aterai pubdate: 2006-05-01T12:35:56+09:00 description: Timerを使ったCursorの切り替えで、マウスポインタのループアニメーションを行います。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTHkbNXdwI/AAAAAAAAARY/RzDAT8xyR3c/s800/AnimatedCursor.png

概要

Timerを使ったCursorの切り替えで、マウスポインタのループアニメーションを行います。

#screenshot

サンプルコード

#spanend
#spandel
list[0] = tk.createCustomCursor(tk.createImage(url00), p, "00");
#spanend
#spandel
list[1] = tk.createCustomCursor(tk.createImage(url01), p, "01");
#spanend
#spandel
list[2] = tk.createCustomCursor(tk.createImage(url02), p, "02");
#spanend
#spandel
setCursor(list[0]);
#spanend
#spandel
animator = new javax.swing.Timer(100, new ActionListener() {
#spanend
  private int count = 0;
  public void actionPerformed(ActionEvent e) {
    setCursor(list[count]);
    count = (count<list.length-1)?count+1:0;
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
Toolkit tk = Toolkit.getDefaultToolkit();
#spanend
#spanadd
list[0] = tk.createCustomCursor(tk.createImage(url00), pt, "00");
#spanend
#spanadd
list[1] = tk.createCustomCursor(tk.createImage(url01), pt, "01");
#spanend
#spanadd
list[2] = tk.createCustomCursor(tk.createImage(url02), pt, "02");
#spanend
#spanadd
animator = new Timer(100, new ActionListener() {
#spanend
  private int counter;
  @Override public void actionPerformed(ActionEvent e) {
    button.setCursor(list[counter]);
    counter = (counter + 1) % list.length;
  }
});
#spandel
JButton button = new JButton(new AbstractAction("スタート") {
#spanend
  public void actionPerformed(ActionEvent e) {
    JButton button = (JButton)e.getSource();
    if(animator.isRunning()) {
      button.setText("スタート");
#spanadd
button = new JButton(new AbstractAction("Start") {
#spanend
  @Override public void actionPerformed(ActionEvent e) {
    JButton b = (JButton) e.getSource();
    if (animator.isRunning()) {
      b.setText("Start");
      animator.stop();
    }else{
      button.setText("ストップ");
    } else {
      b.setText("Stop");
      animator.start();
    }
  }
});

解説

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

解説

  • JButtonのクリックでパネル上にあるカーソルのアニメーションを開始
  • 3枚の透過pngファイルをコマにしてTimerで順番にこれを切り替え
各コマは、ぶーん(通常の選択.ani、VIPポインター)から、ANIめーかーを使って生成しています。

参考リンク

参考リンク

コメント