⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timerbean.java

📁 java核心技术源代码
💻 JAVA
字号:
/**
   @version 1.11 2001-08-20
   @author Cay Horstmann
*/

import java.io.*;
import java.util.*;
import javax.swing.event.*;

/**
   A nonvisual bean that sends timer events.
*/
public class TimerBean implements Serializable
{
   public TimerBean()
   {
      listenerList = new EventListenerList();
   }

   /**
      Sets the interval property.
      @param i the interval between timer ticks (in milliseconds)
   */
   public void setInterval(int i) { interval = i; }

   /**
      Gets the interval property.
      @return the interval between timer ticks (in milliseconds)
   */
   public int getInterval() { return interval; }

   /**
      Sets the running property.
      @param b true if the timer is running
   */
   public void setRunning(boolean b)
   {  
      if (b && runner == null)
      {  
         if (interval <= 0) return;         
         runner = new 
            Thread()
            {
               public void run()
               {  
                  try
                  {  
                     while (!Thread.interrupted())
                     {  
                        Thread.sleep(interval);
                        fireTimeElapsed(new TimerEvent(this));
                     }
                  }
                  catch(InterruptedException e)
                  {
                  }
               }
            };
         runner.start();
      }
      else if (!b && runner != null)
      {  
         runner.interrupt();
         runner = null;
      }
   }

   /**
      Gets the running property.
      @return true if the timer is running
   */
   public boolean isRunning() { return runner != null; }

   /**
      Adds a timer listener.
      @param listener the listener to add
   */
   public void addTimerListener(TimerListener listener)
   {  
      listenerList.add(TimerListener.class, listener);
   }

   /**
      Removes a timer listener.
      @param listener the listener to remove
   */
   public void removeTimerListener(TimerListener listener)
   {  
      listenerList.add(TimerListener.class, listener);
   }

   /**
      Sends a timer event to all listeners.
      @param event the event to send
   */
   public void fireTimeElapsed(TimerEvent event)
   {  
      EventListener[] listeners = listenerList.getListeners(
         TimerListener.class);

      for (int i = 0; i < listeners.length; i++)
      {  
         TimerListener listener = (TimerListener)listeners[i];
         listener.timeElapsed(event);
      }
   }

   private int interval = 1000;
   private EventListenerList listenerList;
   private Thread runner;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -