是否在指定日期执行Java Swing操作
我正在尝试创建一个有两个选项的程序: -倒计时后执行特定任务(分钟)。 -在所选日期执行特定任务。 但是,我不知道如何在特定日期执行操作,下面是代码,提前谢谢是否在指定日期执行Java Swing操作,java,multithreading,swing,date,timer,Java,Multithreading,Swing,Date,Timer,我正在尝试创建一个有两个选项的程序: -倒计时后执行特定任务(分钟)。 -在所选日期执行特定任务。 但是,我不知道如何在特定日期执行操作,下面是代码,提前谢谢 protected Object doInBackground() throws Exception { Timer t = new Timer(0, new ActionListener() { public void actionPerformed(ActionEvent e) {
protected Object doInBackground() throws Exception {
Timer t = new Timer(0, new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
//Checking state of CheckBoxes (one cancels the other)
if(jCheckBox2.isSelected()) {
try {
int delay =(int) jSpinner2.getValue();
jCheckBox1.setSelected(false);
Thread.sleep(delay*60000); //To delay the code from miliseconds to minutes
} catch (InterruptedException ex) {
Logger.getLogger(App_Gui.class.getName()).log(Level.SEVERE, null,
ex);
}
}
else if (jCheckBox1.isSelected()) {
Date delay2 = (Date) jSpinner1.getValue();
jCheckBox2.setSelected(false);
Thread.sleep(delay2); //What should I put here instead of Thread.sleep()???????
}
//If all is right, start the timer
t.start();
t.setRepeats(false);
//Popup dialog
JDialog dialog = new JDialog();
dialog.setLocation(700, 300);
dialog.setSize(600, 400);
dialog.setVisible(true);
//Speed of color changing
try {
Thread.sleep(jSlider1.getValue());
} catch (InterruptedException ex) {
Logger.getLogger(App_Gui.class.getName()).log(Level.SEVERE, null,
ex);
} //Setting the color
dialog.getContentPane().setBackground(jLabel2.getBackground());
dialog.setModal(true);
Assignment_Tajmer_Aplikacija.f.setVisible(false);
return null;
}
protected void done() {
System.out.println("Done!");
}
};
sw.execute();
}
private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {
// TODO add your handling cosadde here:
jSlider1.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider) e.getSource();
//System.out.println(source.getValue());
}
});
}
您有两种选择:
myDate.getTime()-Sytem.currentTimeMillis()
(可能并不总是正确的)SwingUtilities.invokeLater(Runnable)
将作业与Swing线程同步Thread.sleep()
。改为启动计时器。您有两种选择:
myDate.getTime()-Sytem.currentTimeMillis()
(可能并不总是正确的)SwingUtilities.invokeLater(Runnable)
将作业与Swing线程同步Thread.sleep()
。改为启动计时器