日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

17、Java Swing Timer:计时器组件

發布時間:2025/3/20 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 17、Java Swing Timer:计时器组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

計時器(Timer)組件可以在指定時間間隔觸發一個或多個 ActionEvent。

設置計時器的過程包括創建一個 Timer 對象,在該對象上注冊一個或多個動作偵聽器,以及使用 start() 方法啟動該計時器。

例如,以下代碼創建并啟動一個每秒(該時間由 Timer 構造方法的第一個參數指定)觸發一次動作事件的計時器。Timer 構造方法的第二個參數指定接收計時器動作事件的監聽器。

int delay=1000; //時間間隔,單位為毫秒 ActionListener taskPerformer=new ActionListener() {public void afrfcionPerformed(ActionEvent evt){//具體的任務} }; new Timer(delay,taskPerformer).start();

創建 Timer 類時要指定一個延遲參數一個 ActionListener。

延遲參數用于設置初始延遲和事件觸發之間的延遲(以毫秒為單位)。啟動計時器后,它將在向已注冊監聽器觸發第一個 ActionEvent 之前等待初始延遲。第一個事件之后,每次超過事件間延遲時它都繼續觸發事件,直到被停止。

創建 Timer 類之后,可以單獨更改初始延遲和事件間延遲,并且可以添加其他 ActionListener。如果希望計時器只在第一次時觸發然后停止,可以對計時器調用 setRepeats(false)

Timer類的常用方法:

  • addActionListener(ActionListener 1)---- 將一個動作監聽器添加到 Timer
  • getDelay()---- 返回兩次觸發動作事件間延遲,以毫秒為單位
  • isCoalesce()---- 如果 Timer 組合多個掛起的動作事件,則返回 true
  • isRunning() ----如果 Timer 正在運行,則返回 true
  • restart()---- 重新啟動 Timer,取消所有掛起的觸發并使它按初始延遲觸發
  • setCoalesce(boolean flag)---- 設置 Timer 是否組合多個掛起的 ActionEvent
  • setDelay(int delay)---- 設置 Timer 的事件間延遲,兩次連續的動作事件之間的毫秒數
  • setLogTimers(boolean flag)---- 啟用/禁用計時器日志
  • setRepeats(boolean flag) ----如果 flag 為 false,則指示 Timer 只向其監聽器發送一次動作事件
  • start() ----啟動 Timer,使它開始向其監聽器發送動作事件
  • stop()---- 停止 Timer,使它停止向其監聽器發送動作事件

例 1
編寫一個實例,模擬軟件安裝過程中顯示安裝進度信息的進度條。該實例中使用 Timer 類模擬安裝軟件的實際過程,JProgressBar 類顯示相應的進度信息,主要實現過程如下。

(1) 創建一個 JProgressBarDemo1 類并實現 ActionListener 接口和 ChangeListener 接口。

import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.Timer; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class JProgressBarDemo1 implements ActionListener,ChangeListener {JFrame frame=null;JProgressBar progressbar;JLabel label;Timer timer;JButton b;public static void main(String[] agrs){new JProgressBarDemo1(); //創建一個實例化對象} }

(2) 在構造方法中對進度條和計時器進行設置。主要代碼如下:

public JProgressBarDemo1() {frame=new JFrame("軟件安裝");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container contentPane=frame.getContentPane();label=new JLabel(" ",JLabel.CENTER); //創建顯示進度信息的文本標簽progressbar=new JProgressBar(); //創建一個進度條progressbar.setOrientation(JProgressBar.HORIZONTAL);//進度條的方向progressbar.setMinimum(0);//設置進度條的最小值 progressbar.setMaximum(100);progressbar.setValue(0);progressbar.setStringPainted(true);progressbar.addChangeListener(this); //添加事件監聽器//設置進度條的幾何形狀progressbar.setPreferredSize(new Dimension(300,20));progressbar.setBorderPainted(true);//繪制其邊框progressbar.setBackground(Color.pink);//添加啟動按鈕JPanel panel=new JPanel();b=new JButton("安裝");b.setForeground(Color.blue);//添加事件監聽器b.addActionListener(this);panel.add(b);timer=new Timer(100, this); //創建一個計時器,計時間隔為100毫秒//把組件添加到frame中contentPane.add(panel,BorderLayout.NORTH);contentPane.add(progressbar,BorderLayout.CENTER);contentPane.add(label,BorderLayout.SOUTH);frame.pack();frame.setVisible(true); }

(3) 實現 ActionListener 接口中的 actionPerformed() 方法,在這里控制計時器的開始,以及進度條值的變化。具體代碼如下:

//實現事件監聽器接口中的方法 public void actionPerformed(ActionEvent e) {if(e.getSource()==b)timer.start();if(e.getSource()==timer){int value=progressbar.getValue();if(value<100){progressbar.setValue(++value);}else{timer.stop();frame.dispose();}} }

(4) 實現 ChangeListener 接口中的 stateChange() 方法,具體代碼如下:

public void stateChanged(ChangeEvent e1) //實現事件監聽器接口中的方法 {int value=progressbar.getValue();if(e1.getSource()==progressbar){label.setText("目前已完成進度:"+Integer.toString(value)+" %");label.setForeground(Color.blue);} }

(5) 運行程序,默認情況下進度條是 0%,如圖 1 所示。

單擊“安裝”按鈕后進度會一直發生變化,如圖 2 所示。

總結

以上是生活随笔為你收集整理的17、Java Swing Timer:计时器组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲乱色熟女一区二区三区 | 成人免费无遮挡无码黄漫视频 | 成人在线免费小视频 | 久久春色 | 91精品国产综合久久福利软件 | 青青草偷拍视频 | 精品欧美黑人一区二区三区 | 中文资源在线观看 | 婷婷丁香九月 | 91网站大全 | 日本十八禁视频无遮挡 | 国产一区二区三区影视 | 免费无遮挡无码永久视频 | 青娱乐在线视频免费观看 | 黄色成年网站 | jizz一区二区 | 手机看片日本 | 亚洲国产麻豆 | 久草成人在线视频 | 在线亚洲成人 | 免费三级大片 | 免费av网站在线 | 欧美理论在线观看 | 黄a在线观看| 中文字幕亚洲激情 | 亚洲精品视频免费 | 久久久久久久伊人 | 四虎视频 | av在线免费网址 | 亚洲男人的天堂在线 | 成人免费在线视频网站 | 久草视频在线播放 | 欧美xxx性 | 日韩不卡高清 | 在线看免费 | 国产精品麻豆一区二区三区 | 中出白浆 | 成人动漫h在线观看 | 色哟哟导航 | 黄色成人av | 26uuu亚洲国产精品 | 国产精品边吃奶边做爽 | 丰满少妇理论片 | 99reav| 美女靠逼视频网站 | 欧美激情不卡 | 99re这里只有精品在线 | 一级中国毛片 | 男人插女人免费视频 | 99免费在线观看 | 少妇与公做了夜伦理69 | 人人操在线播放 | 99热最新在线 | 懂色av一区二区夜夜嗨 | 91原创国产| 男人的天堂手机在线 | 免费黄色国产 | 国产成人黄色av | 免费一级做a爰片久久毛片潮 | 日韩中文字幕视频在线观看 | 神马久久网站 | 国产精品一区不卡 | 日韩另类视频 | 国产欧美熟妇另类久久久 | 日本色中色| 国产精品久久久久久久久久免费看 | 网爆门在线 | 日韩欧美中文字幕在线视频 | 欧美一二三区视频 | 久久av在线 | 欧美黑人一区二区 | 色哟哟精品观看 | 欧美在线一区二区视频 | 在线看国产精品 | 欧美国产精品一区二区 | 精品午夜久久 | 熟女av一区二区 | 黄色免费视屏 | 亚洲在线免费观看视频 | 灌篮高手全国大赛电影 | 日韩精品视频免费在线观看 | 精品欧美一区二区在线观看 | 国产jk精品白丝av在线观看 | 亚洲成熟少妇视频在线观看 | 制服丝袜av在线播放 | 夜夜操影院 | 中文字幕国产专区 | 永久免费成人代码 | 精品人妻一区二区三区日产 | 国产精品欧美激情 | 99国产精品一区二区 | 美日韩精品一区二区 | 中文字幕久久网 | 男同志毛片特黄毛片 | 蜜臀久久精品久久久用户群体 | 国产精品9191 | 国产精品久久一 | 农村妇女精品一区二区 | 国产在线第一页 |