亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? timer.java

?? linux下編程用 編譯軟件
?? JAVA
字號:
/* Timer.java --   Copyright (C) 2002, 2004, 2005  Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. */package javax.swing;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.Serializable;import java.util.EventListener;import javax.swing.event.EventListenerList;/** * Fires one or more action events after the specified delay.  This is * a specialised version of <code>java.util.Timer</code> just for * firing <code>ActionEvent</code>s. All Timers share one (daemon) * Thread (or java.util.Timer). All events are fired from the event * queue. *  * @author Ronald Veldema * @author Audrius Meskauskas (audriusa@Bionformatics.org) - bug fixes * and documentation comments */public class Timer  implements Serializable{  /**   * Given to the shared java.util.Timer to (possibly repeatedly) call   * queueEvent().   */  private class Task extends java.util.TimerTask  {    public void run()    {      if (logTimers)	System.out.println("javax.swing.Timer -> queueEvent()");      queueEvent();      if (!repeats)	task = null;    }  }  /**   * Use serialVersionUID for interoperability.   */  private static final long serialVersionUID = -1116180831621385484L;  /**   * The encloding class, used with {@link SwingUtilities#invokeLater}   * to invoke the {@link #drainEvents()}.   */  private Runnable drainer = new Runnable()    {      public void run()      {        drainEvents();      }    };  /**   * The static java.util.Timer daemon which will be used to schedule   * all javax.swing.Timer.Task objects. The daemon will always be   * running, even if there's no task scheduled in it.   */  private static java.util.Timer timer = new java.util.Timer("swing.Timer",							     true);  /**   * If <code>true</code>, the timer prints a message to   * {@link System#out} when firing each event.   */  static boolean logTimers;  /**   * A field to store all listeners who are listening to this timer.   */  protected EventListenerList listenerList = new EventListenerList();  /**   * <code>true</code> if the timer coalesces events.   */  boolean coalesce = true;  /**   * <code>true</code> if the timer is firing repetetive events.   */  boolean repeats = true;  /**   * The delay between subsequent repetetive events.   */  int delay;  /**   * The initial delay before the first event.   */  int initialDelay;  /**   * The number of events that have been already fired by this timer.   * This is used as a numeric identifier for the next event that would   * be fired.   */  int ticks;  /**   * The task that calls queueEvent(). When null this Timer is stopped.   */  private Task task;  /**   * This object manages a "queue" of virtual actionEvents, maintained as a   * simple long counter. When the timer expires, a new event is queued,   * and a dispatcher object is pushed into the system event queue. When   * the system thread runs the dispatcher, it will fire as many   * ActionEvents as have been queued, unless the timer is set to   * coalescing mode, in which case it will fire only one ActionEvent.   */  private long queue;  /**   * <code>synchronized(queueLock)</code> replaces   * <code>synchronized(queue)</code> that is not supported by this language.   */  private Object queueLock = new Object();  /**   * Creates a new Timer object.   *   * @param d the default value for both initial and between event delay, in   * milliseconds.   * @param listener the first action listener, can be <code>null</code>.   */  public Timer(int d, ActionListener listener)  {    delay = d;    initialDelay = d;    if (listener != null)      addActionListener(listener);  }  /**   * Get the array of action listeners.   *   * @return the array of action listeners that are listening for the events,   * fired by this timer   *   * @since 1.4   */  public ActionListener[] getActionListeners()  {    return (ActionListener[]) listenerList.getListeners(ActionListener.class);  }  /**   * Sets whether the Timer coalesces multiple pending event firings.   * If the coalescing is enabled, the multiple events that have not been   * fired on time are replaced by the single event. The events may not   * be fired on time if the application is busy.   *   * @param c <code>true</code> (default) to enable the event coalescing,   * <code>false</code> otherwise   */  public void setCoalesce(boolean c)  {    coalesce = c;  }  /**   * Checks if the Timer coalesces multiple pending event firings.   * If the coalescing is enabled, the multiple events that have not been   * fired on time are replaced by the single event. The events may not   * be fired on time if the application is busy.   *   * @return <code>true</code> if the coalescing is enabled,   * <code>false</code> otherwise   */  public boolean isCoalesce()  {    return coalesce;  }  /**   * Get the event listeners of the given type that are listening for the   * events, fired by this timer.   *   * @param listenerType the listener type (for example, ActionListener.class)   *   * @return the array of event listeners that are listening for the events,   * fired by this timer   * @since 1.3   */  public EventListener[] getListeners(Class listenerType)  {    return listenerList.getListeners(listenerType);  }  /**   * Set the timer logging state. If it is set to <code>true</code>, the   * timer prints a message to {@link System#out} when firing each   * action event.   *   * @param lt <code>true</code> if logging is enabled, <code>false</code>   * (default value) otherwise   */  public static void setLogTimers(boolean lt)  {    logTimers = lt;  }  /**   * Return the logging state.   *   * @return <code>true</code> if the timer is printing a message to   * {@link System#out}   * when firing each action event   */  public static boolean getLogTimers()  {    return logTimers;  }  /**   * Set the delay between firing the subsequent events.   * This parameter does not change the value of the initial delay before   * firing the first event.   *   * @param d The time gap between the subsequent events, in milliseconds   */  public void setDelay(int d)  {    delay = d;  }  /**   * Get the delay between firing the subsequent events.   *   * @return The delay between subsequent events, in milliseconds   */  public int getDelay()  {    return delay;  }  /**   * Set the intial delay before firing the first event since calling   * the {@link #start()} method. If the initial delay has not been   * set, it is assumed having the same value as the delay between the   * subsequent events.   *   * @param i the initial delay, in milliseconds   */  public void setInitialDelay(int i)  {    initialDelay = i;  }  /**   * Get the intial delay before firing the first event since calling   * the {@link #start()} method. If the initial delay has not been   * set, returns the same value as {@link #getDelay()}.   *   * @return the initial delay before firing the first action event.   */  public int getInitialDelay()  {    return initialDelay;  }  /**   * Enable firing the repetetive events.   *   * @param r <code>true</code> (default value) to fire repetetive events.   * <code>false</code> to fire   * only one event after the initial delay   */  public void setRepeats(boolean r)  {    repeats = r;  }  /**   * Check is this timer fires repetetive events.   *   * @return <code>true</code> if the timer fires repetetive events,   * <code>false</code> if it fires   * only one event after the initial delay   */  public boolean isRepeats()  {    return repeats;  }  /**   * Get the timer state.   *   * @return <code>true</code> if the timer has been started and is firing   * the action events as scheduled. <code>false</code>   * if the timer is inactive.   */  public boolean isRunning()  {    return task != null;  }  /**   * Add the action listener   *   * @param listener the action listener to add   */  public void addActionListener(ActionListener listener)  {    listenerList.add(ActionListener.class, listener);  }  /**   * Remove the action listener.   *   * @param listener the action listener to remove   */  public void removeActionListener(ActionListener listener)  {    listenerList.remove(ActionListener.class, listener);  }  /**   * Cancel all pending tasks and fire the first event after the initial   * delay.   */  public void restart()  {    stop();    start();  }  /**   * Start firing the action events.   */  public void start()  {    Task t = task;    if (t == null)      {	t = new Task();	if (isRepeats())	  timer.schedule(t, getInitialDelay(), getDelay());	else	  timer.schedule(t, getInitialDelay());	task = t;      }  }  /**   * Stop firing the action events.   */  public void stop()  {    Task t = task;    if (t != null)      {	t.cancel();	task = null;      }  }  /**   * Fire the given action event to the action listeners.   *   * @param event the event to fire   */  protected void fireActionPerformed(ActionEvent event)  {    ActionListener[] listeners = getActionListeners();    for (int i = 0; i < listeners.length; i++)      listeners [ i ].actionPerformed(event);  }  /**   * Fire the action event, named "Timer" and having the numeric   * identifier, equal to the numer of events that have been   * already fired before.   */  void fireActionPerformed()  {    fireActionPerformed(new ActionEvent(this, ticks++, "Timer"));  }  /**   * Fire the queued action events.   * In the coalescing mode, a single event is fired as a replacement   * for all queued events. In non coalescing mode, a series of   * all queued events is fired.   * This is package-private to avoid an accessor method.   */  void drainEvents()  {    synchronized (queueLock)      {        if (isCoalesce())          {            if (queue > 0)              fireActionPerformed();          }        else          {            while (queue > 0)              {                fireActionPerformed();                queue--;              }          }        queue = 0;      }  }  /**  * Post a scheduled event to the event queue.  * Package-private to avoid an accessor method.  */  void queueEvent()  {    synchronized(queueLock)      {	queue++;	if (queue == 1)	  SwingUtilities.invokeLater(drainer);      }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一级二级在线| 精品乱码亚洲一区二区不卡| 欧美日韩精品一区二区| 欧美一级午夜免费电影| 久久综合久久综合亚洲| 国产精品灌醉下药二区| 午夜精品一区二区三区电影天堂| 久久国产免费看| 99久久婷婷国产| 日韩一区二区电影| 国产精品久久久久精k8| 日本欧美一区二区| 成人a区在线观看| 日韩一区二区影院| 国产精品高潮久久久久无| 爽好多水快深点欧美视频| 国产精品亚洲一区二区三区妖精| 色婷婷久久久综合中文字幕| 欧美刺激午夜性久久久久久久 | 日韩精品久久久久久| 粉嫩蜜臀av国产精品网站| 欧美视频自拍偷拍| 中文字幕欧美日韩一区| 日韩av电影天堂| 一本大道久久a久久精品综合| 欧美高清hd18日本| 国产精品久久影院| 黄页网站大全一区二区| 欧美丝袜自拍制服另类| 国产精品视频第一区| 日本一区中文字幕| 91在线播放网址| 久久婷婷综合激情| 偷窥少妇高潮呻吟av久久免费| 国产99久久精品| 亚洲黄色免费网站| 国产精品综合av一区二区国产馆| 欧美丰满嫩嫩电影| 亚洲免费观看在线视频| 国产91在线观看| 日韩午夜电影在线观看| 亚洲高清久久久| 不卡的av电影| 国产亚洲精品免费| 久久99国产精品免费网站| 欧美日韩亚州综合| 亚洲欧美成人一区二区三区| 国产福利一区在线| 日韩免费看网站| 日韩不卡一二三区| 欧美色综合影院| 亚洲精品中文在线影院| 97se亚洲国产综合自在线不卡| 国产亚洲综合在线| 国产二区国产一区在线观看| 日韩精品一区二区三区在线播放| 性欧美疯狂xxxxbbbb| 欧美日韩中文字幕一区二区| 亚洲天堂福利av| 波多野结衣一区二区三区| 国产日韩精品视频一区| 国内不卡的二区三区中文字幕| 日韩午夜小视频| 美女视频网站黄色亚洲| 日韩免费观看高清完整版| 日本vs亚洲vs韩国一区三区二区| 欧美精品日韩精品| 午夜久久久久久久久| 欧美精品亚洲二区| 视频一区二区中文字幕| 欧美二区乱c少妇| 天天爽夜夜爽夜夜爽精品视频| 欧美视频一区在线| 亚洲成人午夜电影| 欧美一区二区视频在线观看2022| 视频一区二区中文字幕| 日韩一区二区三区在线视频| 久久99国产精品久久99果冻传媒| 日韩女优毛片在线| 精品一区二区在线播放| 国产日本亚洲高清| 成人网男人的天堂| 中文字幕日韩一区二区| 色婷婷狠狠综合| 亚洲1区2区3区4区| 日韩欧美一级二级| 国产成人亚洲精品青草天美| 亚洲国产精品精华液2区45| 99久久国产综合精品色伊| 自拍偷拍欧美激情| 欧美视频一区二区| 日本va欧美va精品发布| 久久久亚洲午夜电影| 97国产一区二区| 丝袜美腿亚洲色图| 久久久美女毛片| 91蜜桃婷婷狠狠久久综合9色| 亚洲精品国产高清久久伦理二区| 欧美男人的天堂一二区| 久久91精品国产91久久小草| 国产婷婷精品av在线| 欧美在线综合视频| 裸体歌舞表演一区二区| 国产精品拍天天在线| 欧美无砖砖区免费| 国产在线视频不卡二| 亚洲男同性视频| 欧美电影影音先锋| 国产传媒一区在线| 怡红院av一区二区三区| 欧美成人一区二区三区片免费| 成人手机在线视频| 亚洲国产欧美另类丝袜| www国产精品av| 色婷婷精品久久二区二区蜜臂av| 蜜桃精品视频在线| 中文字幕中文字幕一区二区| 欧美日韩美女一区二区| 国产精品系列在线观看| 亚洲v日本v欧美v久久精品| 久久久久亚洲综合| 欧美午夜精品免费| 国产成人在线免费| 午夜伊人狠狠久久| 国产夜色精品一区二区av| 欧美日韩国产大片| 成人午夜免费视频| 麻豆精品视频在线| 亚洲精品国产无套在线观| 久久综合九色欧美综合狠狠 | 亚洲成人动漫在线免费观看| 久久久久久久久一| 欧美日韩黄视频| 成人免费va视频| 美女视频黄 久久| 亚洲自拍偷拍图区| 久久久噜噜噜久久中文字幕色伊伊| 欧美中文字幕久久| 不卡视频在线看| 国产一区二区三区美女| 亚洲午夜精品久久久久久久久| 久久精品视频在线看| 欧美日韩免费一区二区三区 | 国产精品久久综合| 精品久久久久久久久久久久久久久| 91蝌蚪porny| 国产成人亚洲综合a∨猫咪| 麻豆精品一区二区av白丝在线| 一区二区三区电影在线播| 欧美国产1区2区| 久久日韩粉嫩一区二区三区| 欧美一区二区美女| 欧美熟乱第一页| 色综合视频在线观看| 国产成人久久精品77777最新版本| 日本伊人色综合网| 午夜一区二区三区视频| 一区二区三区四区乱视频| 国产精品污污网站在线观看| 欧美v国产在线一区二区三区| 欧美精品在线一区二区三区| 色视频欧美一区二区三区| 成人av电影在线播放| 国产丶欧美丶日本不卡视频| 国产在线播放一区二区三区| 久久国产精品一区二区| 青草国产精品久久久久久| 日韩成人午夜电影| 成人h精品动漫一区二区三区| 国产精品夜夜嗨| 国产老女人精品毛片久久| 精品一区在线看| 国模大尺度一区二区三区| 男女男精品视频网| 日韩国产在线一| 无码av中文一区二区三区桃花岛| 亚洲自拍与偷拍| 亚洲高清视频中文字幕| 一区二区三区丝袜| 伊人一区二区三区| 亚洲最新在线观看| 亚洲欧美激情一区二区| 亚洲日本韩国一区| 一区二区三区成人| 亚洲国产毛片aaaaa无费看 | 56国语精品自产拍在线观看| 欧美三级在线播放| 欧美日韩www| 日韩欧美国产一区二区在线播放| 欧美一卡二卡三卡四卡| 日韩欧美国产一二三区| 亚洲精品一区二区三区福利| 久久亚洲精品小早川怜子| 久久久久久久久久久黄色| 久久久久亚洲综合| 国产精品久久久久9999吃药| 一区二区免费视频| 亚洲不卡av一区二区三区| 免费欧美在线视频| 国产一区二区三区四区五区入口|