diff --git a/src/com/casic/swing/ui/TimeGuardNtp.java b/src/com/casic/swing/ui/TimeGuardNtp.java index 1be9340..dbce756 100644 --- a/src/com/casic/swing/ui/TimeGuardNtp.java +++ b/src/com/casic/swing/ui/TimeGuardNtp.java @@ -41,7 +41,6 @@ 1, new ThreadFactoryBuilder().setNameFormat("demo-pool-%d").build()); private boolean hasNtp = false; private String host = HOST_IP[0]; - private int period = 1; public static void main(String[] args) { new TimeGuardNtp(); @@ -131,28 +130,16 @@ JCheckBox checkBox = (JCheckBox) e.getSource(); updateTimeButton.setEnabled(!checkBox.isSelected()); periodComboBox.setEnabled(checkBox.isSelected()); + startAutoSynchronize(1); } }); periodComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { - period = (Integer) e.getItem(); + int period = (Integer) e.getItem(); if (e.getStateChange() == ItemEvent.SELECTED) { - /** - * 开启同步,只能开启一个同步线程 - * - * scheduleAtFixedRate - * 是以上一个任务开始的时间计时,period时间过去后,检测上一个任务是否执行完毕 - * 如果上一个任务执行完毕,则当前任务立即执行 - * 如果上一个任务没有执行完毕,则需要等上一个任务执行完毕后立即执行 - * */ - executorService.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - updateView(); - } - }, 0, period, TimeUnit.HOURS); + startAutoSynchronize(period); } } }); @@ -166,6 +153,23 @@ }); } + private void startAutoSynchronize(int period) { + /** + * 开启同步,只能开启一个同步线程 + * + * scheduleAtFixedRate + * 是以上一个任务开始的时间计时,period时间过去后,检测上一个任务是否执行完毕 + * 如果上一个任务执行完毕,则当前任务立即执行 + * 如果上一个任务没有执行完毕,则需要等上一个任务执行完毕后立即执行 + * */ + executorService.scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + updateView(); + } + }, 0, period, TimeUnit.HOURS); + } + private void updateView() { String result = CommandUtil.ntpDate(host); System.out.println("命令执行结果 ===> " + result);