奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

Java中如何實現顯示動態的時間

時間:2025-03-14 05:26:44 java語言 我要投稿
  • 相關推薦

Java中如何實現顯示動態的時間

  本文所述實例可以實現Java在界面上動態的顯示時間。具體實現方法匯總如下:

Java中如何實現顯示動態的時間

  1.方法一 用TimerTask:

  利用java.util.Timer和java.util.TimerTask來做動態更新,畢竟每次更新可以看作是計時1秒發生一次。

  代碼如下:

  import java.awt.Dimension;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;/** * This class is a simple JFrame implementation to explain how to * display time dynamically on the JSwing-based interface. * @author Edison * */public class TimeFrame extends JFrame{ /* * Variables */ private JPanel timePanel; private JLabel timeLabel; private JLabel displayArea; private String DEFAULT_TIME_FORMAT = "HH:mm:ss"; private String time; private int ONE_SECOND = 1000; public TimeFrame() { timePanel = new JPanel(); timeLabel = new JLabel("CurrentTime: "); displayArea = new JLabel(); configTimeArea(); timePanel.add(timeLabel); timePanel.add(displayArea); this.add(timePanel); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(new Dimension(200,70)); this.setLocationRelativeTo(null); } /** * This method creates a timer task to the time per second */ private void configTimeArea() { Timer tmr = new Timer(); tmr.scheduleAtFixedRate(new JLabelTimerTask(),new Date(), ONE_SECOND); } /** * Timer task to the time display area * */ protected class JLabelTimerTask extends TimerTask{ SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT); @Override public void run() { time = dateFormatter.format(Calendar.getInstance().getTime()); displayArea.setText(time); } } public static void main(String arg[]) { TimeFrame timeFrame=new TimeFrame(); timeFrame.setVisible(true); } }

  繼承TimerTask來創建一個自定義的task,獲取當前時間,更新displayArea.

  然后創建一個timer的實例,每1秒執行一次timertask。由于用schedule可能會有時間誤差產生,所以直接調用精度更高的scheduleAtFixedRate的。

  2. 方法二:利用線程:

  這個就比較簡單了。具體代碼如下:

  import java.awt.Dimension;import java.text.SimpleDateFormat;import java.util.Calendar;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;/** * This class is a simple JFrame implementation to explain how to * display time dynamically on the JSwing-based interface. * @author Edison * */public class DTimeFrame2 extends JFrame implements Runnable{ private JFrame frame; private JPanel timePanel; private JLabel timeLabel; private JLabel displayArea; private String DEFAULT_TIME_FORMAT = "HH:mm:ss"; private int ONE_SECOND = 1000; public DTimeFrame2() { timePanel = new JPanel(); timeLabel = new JLabel("CurrentTime: "); displayArea = new JLabel(); timePanel.add(timeLabel); timePanel.add(displayArea); this.add(timePanel); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(new Dimension(200,70)); this.setLocationRelativeTo(null); } public void run() { while(true) { SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT); displayArea.setText(dateFormatter.format( Calendar.getInstance().getTime())); try { Thread.sleep(ONE_SECOND); } catch(Exception e) { displayArea.setText("Error!!!"); } } } public static void main(String arg[]) { DTimeFrame2 df2=new DTimeFrame2(); df2.setVisible(true); Thread thread1=new Thread(df2); thread1.start(); } }

  比較:

  個人傾向于方法一,因為Timer是可以被多個TimerTask共用,而產生一個線程,會增加多線程的維護復雜度。

  注意如下代碼:

  jFrame.setDefaultCloseOperation(); // 給關閉按鈕增加特定行為jFrame.setLocationRelativeTo(null); // 讓Frame一出來就在屏幕中間,而不是左上方。

  將上面方法一稍微一修改,就可以顯示多國時間。代碼如下:

  import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import java.util.TimeZone;import java.util.Timer;import java.util.TimerTask;import javax.swing.DefaultComboBoxModel;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;/** * A simple world clock * @author Edison * */public class WorldTimeFrame extends JFrame{ /** * */ private static final long serialVersionUID = 4782486524987801209L; private String time; private JPanel timePanel; private TimeZone timeZone; private JComboBox zoneBox; private JLabel displayArea; private int ONE_SECOND = 1000; private String DEFAULT_FORMAT = "EEE d MMM, HH:mm:ss"; public WorldTimeFrame() { zoneBox = new JComboBox(); timePanel = new JPanel(); displayArea = new JLabel(); timeZone = TimeZone.getDefault(); zoneBox.setModel(new DefaultComboBoxModel(TimeZone.getAvailableIDs())); zoneBox.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { updateTimeZone(TimeZone.getTimeZone((String) zoneBox.getSelectedItem())); } }); configTimeArea(); timePanel.add(displayArea); this.setLayout(new BorderLayout()); this.add(zoneBox, BorderLayout.NORTH); this.add(timePanel, BorderLayout.CENTER); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); pack(); } /** * This method creates a timer task to the time per second */ private void configTimeArea() { Timer tmr = new Timer(); tmr.scheduleAtFixedRate(new JLabelTimerTask(),new Date(), ONE_SECOND); } /** * Timer task to the time display area * */ public class JLabelTimerTask extends TimerTask{ SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_FORMAT, Locale.ENGLISH); @Override public void run() { dateFormatter.setTimeZone(timeZone); time = dateFormatter.format(Calendar.getInstance().getTime()); displayArea.setText(time); } } /** * Update the timeZone * @param newZone */ public void updateTimeZone(TimeZone newZone) { this.timeZone = newZone; } public static void main(String arg[]) { new WorldTimeFrame(); } }

  本來需要在updateTimeZone(TimeZone newZone)中,更新displayArea的。但是考慮到TimerTask執行的時間太短,才1秒鐘,以肉眼觀察,基本上是和立刻更新沒區別。如果TimerTask執行時間長的話,這里就要立刻重新用心的時間更新一下displayArea。

  補充:

  ①. pack() 用來自動計算屏幕大小;

  ②. TimeZone.getAvailableIDs() 用來獲取所有的TimeZone。

【Java中如何實現顯示動態的時間】相關文章:

關于Java動態實現的方法08-23

java利用反射實現動態代理實現代碼10-08

java使用動態代理來實現AOP05-29

如何在java中實現左右鍵菜單10-30

如何正確實現Java中的hashCode方法08-08

axure動態面板是否有顯示時間的功能08-23

java如何實現漢諾塔08-08

關于java讀取文件顯示進度條的實現方法11-02

Java中靜態綁定和動態綁定的區別08-14

主站蜘蛛池模板: 沽源县| 巍山| 嘉祥县| 定陶县| 常山县| 西乌| 烟台市| 昌邑市| 孟州市| 荥经县| 陈巴尔虎旗| 湄潭县| 太保市| 故城县| 满洲里市| 江北区| 古田县| 江津市| 晴隆县| 甘肃省| 泸水县| 米脂县| 吴旗县| 临漳县| 高阳县| 蒙自县| 苍溪县| 美姑县| 嘉鱼县| 濮阳县| 广宗县| 西城区| 正蓝旗| 竹北市| 林周县| 萍乡市| 秦安县| 岑巩县| 富裕县| 大港区| 乌鲁木齐县|