java有没有能实现定时功能的包? java.util.TimeTaskjava.util.Timer 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个关于Timer的例子:import javax.swing.*;import javax.swing.border.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import java.util.*;public class TimerDemo implements ActionListener,ChangeListener{ JFrame f=null; ImageIcon[] icons; JSlider slider; JLabel label; JToggleButton toggleb1,toggleb2; JButton b; javax.swing.Timer timer; int index=0; public TimerDemo(){ f=new JFrame("Timer Example"); Container contentPane=f.getContentPane(); icons=new ImageIcon[5]; for(int i=0;i<icons.length;i++){ icons[i]=new ImageIcon("doc"+(i+1)+".gif"); } label=new JLabel(icons[0]); JPanel panel1=new JPanel(); panel1.setLayout(new GridLayout(2,1)); slider=new JSlider(); slider.setPaintTicks(true); slider.setMajorTickSpacing(20); slider.setMinorTickSpacing(10); slider.setPaintLabels(true); slider.addChangeListener(this); panel1.add(slider); JPanel buttonPanel=new JPanel(); buttonPanel.setLayout(new GridLayout(1,3)); toggleb1=new JToggleButton("Start"); toggleb1.addActionListener(this); buttonPanel.add(toggleb1); b=new JButton("Restart"); b.addActionListener(this); buttonPanel.add(b); toggleb2=new JToggleButton("Don't Repeat"); toggleb2.addActionListener(this); buttonPanel.add(toggleb2); panel1.add(buttonPanel); Hashtable table=new Hashtable(); table.put(new Integer(0),new JLabel("低")); table.put(new Integer(50),new JLabel("中")); table.put(new Integer(100),new JLabel("高")); slider.setLabelTable(table); timer=new javax.swing.Timer(slider.getValue()*10,this); contentPane.add(label,BorderLayout.CENTER); contentPane.add(panel1,BorderLayout.SOUTH); f.pack(); f.show(); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ f.dispose(); System.exit(0); } }); } public static void main(String args[]){ new TimerDemo(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==toggleb1){ if(e.getActionCommand().equals("Start")){ timer.start(); toggleb1.setText("Stop"); } if(e.getActionCommand().equals("Stop")){ timer.stop(); toggleb1.setText("Start"); } } if(e.getSource()==toggleb2){ if(timer.isRepeats()){ timer.setRepeats(false); } else{ timer.setRepeats(true); timer.start(); } } if(e.getSource()==b){ slider.setValue(50); timer.restart(); } if(e.getSource()==timer){ if(index==5){ index=0; } label.setIcon(icons[index]); label.repaint(); index++; } } public void stateChanged(ChangeEvent e){ timer.setDelay(slider.getValue()*10); }} Timer 和 TimeTas 的功能太弱了,如果要实现复杂的定时功能的话写起来太麻烦了。(例如:每月第3周的星期三)还有其他的包没有啊? 我们现在要求的功能和linux的crond命令差不多,如果用监听器的话要考虑太多的时间格式,太复杂了还有没有别的办法啊?或者是有现成的包? 似乎没有现成的包~那时候也曾经要写和楼主差不多的东西~后来用Timer和TimerTask写了点简单的就不了了之了 花了一天,用google找了到几个的,正在试验 c3p0异常 不知道这个编译警告是什么意思?请大哥们赐教... 请您帮忙,快看看 问一个弱弱的问题 oracle 连接数据库? help Java中有没有日期加减的函数? application中能跑的程序applet中不能跑,多谢指点 java菜鸟提问,一个简单得不得了的,不能再简单的输出问题!!!! [scjp问题] 关于静态方法中间的变量调用错误问题 sun的一道题 POI读取EXCEL
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.*;public class TimerDemo implements ActionListener,ChangeListener{
JFrame f=null;
ImageIcon[] icons;
JSlider slider;
JLabel label;
JToggleButton toggleb1,toggleb2;
JButton b;
javax.swing.Timer timer;
int index=0;
public TimerDemo(){
f=new JFrame("Timer Example");
Container contentPane=f.getContentPane();
icons=new ImageIcon[5];
for(int i=0;i<icons.length;i++){
icons[i]=new ImageIcon("doc"+(i+1)+".gif");
}
label=new JLabel(icons[0]);
JPanel panel1=new JPanel();
panel1.setLayout(new GridLayout(2,1));
slider=new JSlider();
slider.setPaintTicks(true);
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(10);
slider.setPaintLabels(true);
slider.addChangeListener(this);
panel1.add(slider);
JPanel buttonPanel=new JPanel();
buttonPanel.setLayout(new GridLayout(1,3));
toggleb1=new JToggleButton("Start");
toggleb1.addActionListener(this);
buttonPanel.add(toggleb1);
b=new JButton("Restart");
b.addActionListener(this);
buttonPanel.add(b);
toggleb2=new JToggleButton("Don't Repeat");
toggleb2.addActionListener(this);
buttonPanel.add(toggleb2);
panel1.add(buttonPanel);
Hashtable table=new Hashtable();
table.put(new Integer(0),new JLabel("低"));
table.put(new Integer(50),new JLabel("中"));
table.put(new Integer(100),new JLabel("高"));
slider.setLabelTable(table);
timer=new javax.swing.Timer(slider.getValue()*10,this);
contentPane.add(label,BorderLayout.CENTER);
contentPane.add(panel1,BorderLayout.SOUTH);
f.pack();
f.show();
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
f.dispose();
System.exit(0);
}
});
}
public static void main(String args[]){
new TimerDemo();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==toggleb1){
if(e.getActionCommand().equals("Start")){
timer.start();
toggleb1.setText("Stop");
}
if(e.getActionCommand().equals("Stop")){
timer.stop();
toggleb1.setText("Start");
}
}
if(e.getSource()==toggleb2){
if(timer.isRepeats()){
timer.setRepeats(false);
}
else{
timer.setRepeats(true);
timer.start();
}
}
if(e.getSource()==b){
slider.setValue(50);
timer.restart();
}
if(e.getSource()==timer){
if(index==5){
index=0;
}
label.setIcon(icons[index]);
label.repaint();
index++;
}
}
public void stateChanged(ChangeEvent e){
timer.setDelay(slider.getValue()*10);
}
}
后来用Timer和TimerTask写了点简单的就不了了之了