java任务定时器

之前在下载东西的时候,因为浏览器的下载,我想这个下载完后再开迅雷,然后就突发一个念头,有定时执行任务的这种东西吧,确实,win7有个任务计划,其实学了java,感觉可以用线程的东西写个这样的出来,所以,便动手写了。



swing,和awt写的窗口用了别人的,自己的弱项。最后有下载地址,有源码,输入时间,选择文件,可以选择快捷方式,自己想添加什么文件类型去源代码添加。


程序拿到两个JTextField的值,另外一个类的构造方法带这两个参数,拿到参数,线程睡眠,接下来执行选中文件。


当路径有空格的时候,start命令运行是有问题的,所以如下:

Runtime.getRuntime().exec("cmd /c start "+"\""+"\"  \""+ path+"\"");


源码:

package TimerTask;

import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;

public class ChooserFile extends JFrame implements ActionListener {
	JTextField labfilepath;
	JTextField time;
	JPanel panel;
	JButton btn;
	JButton btn2;

	public ChooserFile() {
		setBounds(500, 300, 300, 300);
		labfilepath = new JTextField(20);
		time = new JTextField(20);
		btn = new JButton("选择文件");
		btn2 = new JButton("确定");
		btn.addActionListener(this);

		panel = new JPanel();
		panel.add(new Label("运行间隔时间(单位:秒)"));
		panel.add(time);

		panel.add(new Label("请选择程序"));
		panel.add(labfilepath);
		panel.add(btn);
		panel.add(btn2);
		btn2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				String str = "";
				str += time.getText();
				System.out.println(str);
				String str2 = "";
				str2 += labfilepath.getText();
				System.out.println(str2);
				TimerClose tc = new TimerClose(Long.parseLong(str) * 1000, str2);
				System.out.println(tc.getLongtime());
				tc.run();
				// tc.run();
			}
		});
		getContentPane().add(panel);
		setTitle("定时执行器");
		setSize(400, 200);
		setVisible(true);
	}

	public static void main(String args[]) {
		new ChooserFile();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		open();
	}

	public void open() {
		JFileChooser chooser = new JFileChooser();
		chooser.setMultiSelectionEnabled(false);
		FileNameExtensionFilter filter = new FileNameExtensionFilter("EXE",
				"exe", "txt", "lnk");
		chooser.setFileFilter(filter);
		chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
		chooser.setDialogTitle("Seletct exe File");
		int result = chooser.showOpenDialog(this);
		if (result == JFileChooser.APPROVE_OPTION) {
			File file = chooser.getSelectedFile();
			String filename = file.getName();
			File file1 = chooser.getCurrentDirectory();
			String filepath = file1.getAbsolutePath();
			labfilepath.setText(filepath + "\\" + filename);// 将文件路径设到JTextField

			// System.out.println(filepath+"\\"+filename);
		}
	}
}


package TimerTask;
import java.awt.TextField;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.Date;

public class TimerClose implements Runnable {
	private  static long longtime ;
	public static long getLongtime() {
		return longtime;
	}
	public static String getPath() {
		return path;
	}

	//private static String command = "cmd /E:ON /c call  ";
    private static  String path = "";
    private static int sec = 0;
    
    //构造方法     传入参数     将图形界面拿到的时间值赋给longtime
    public TimerClose(Long time,String path){
    	this.longtime = time;
    	this.path = path;
    }
   
/*    START D:\Program Files\Thunder Network\Thunder\Program\Thunder.exe */
    private static void process() {
        try {
        	path = path.replaceAll("\\\\","\\\\\\\\");
            Process process = Runtime.getRuntime().exec("cmd /c start "+"\""+"\"  \""+ path+"\"");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    public void run() {
    	try {
    		Thread.sleep(longtime);
    	} catch (InterruptedException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    	process();
    }
}

之前那个导出的时候忘记放源码了

下载地址:http://download.csdn.net/detail/iaiti/5621137


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iaiti

赏顿早餐钱~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值