源码文件2:Launcher.javapackage com.teleca.robin;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Launcher extends JFrame implements WindowListener{private long interval;private String executableFileName;Launcher(String file,long time){if(file==null)executableFileName="";elseexecutableFileName=file;interval=time;initComponents();this.addWindowListener(this);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}/** This method is called from within the constructor to* initialize the form.* WARNING: Do NOT modify this code. The content of this method is* always regenerated by the Form Editor.*/// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponentsprivate void initComponents() {jButtonStart = new javax.swing.JButton();jButtonPause = new javax.swing.JButton();jButtonExit = new javax.swing.JButton();jTextFieldFile = new javax.swing.JTextField(20);jTextFieldTime = new javax.swing.JTextField(5);jLabelFile = new javax.swing.JLabel();jLabelTime = new javax.swing.JLabel();jLabelTip = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setName("Form"); // NOI18N
jButtonStart.setText("Start"); // NOI18N
jButtonStart.setName("jButtonStart"); // NOI18N
jButtonStart.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {start();}});jButtonPause.setText("Pause"); // NOI18N
jButtonPause.setName("jButtonPause"); // NOI18N
jButtonPause.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {pause();}});jButtonExit.setText("Exit"); // NOI18N
jButtonExit.setName("jButtonExit"); // NOI18N
jButtonExit.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {stop();System.exit(0);}});jButtonStart.setEnabled(true);jButtonPause.setEnabled(false);jTextFieldFile.setText(executableFileName); // NOI18N
jTextFieldFile.setName("jTextFieldFile"); // NOI18N
jTextFieldFile.setHorizontalAlignment(JTextField.CENTER);jTextFieldTime.setText(""+interval); // NOI18N
jTextFieldTime.setName("jTextFieldTime"); // NOI18N
jTextFieldTime.setHorizontalAlignment(JTextField.CENTER);jLabelFile.setText("the executable file"); // NOI18N
jLabelFile.setName("jLabelFile"); // NOI18N
jLabelTime.setText("the interval time(millisecond)"); // NOI18N
jLabelTime.setName("jLabelTime"); // NOI18N
jLabelTip.setText("idle"); // NOI18N
jLabelTip.setName("jLabelTip"); // NOI18N
jLabelTip.setHorizontalAlignment(SwingConstants.CENTER);javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(71, 71, 71).addComponent(jLabelTime)).addGroup(layout.createSequentialGroup().addGap(70, 70, 70).addComponent(jLabelFile)).addGroup(layout.createSequentialGroup().addGap(90, 90, 90).addComponent(jButtonStart))).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(100, 100, 100).addComponent(jTextFieldTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(layout.createSequentialGroup().addComponent(jTextFieldFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(layout.createSequentialGroup().addGap(10, 10, 10).addComponent(jButtonPause)).addGroup(layout.createSequentialGroup().addGap(20, 20, 20).addComponent(jLabelTip)).addGroup(layout.createSequentialGroup().addGap(180, 180, 180).addComponent(jButtonExit))))).addContainerGap(151, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(63, 63, 63).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabelFile).addComponent(jTextFieldFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(29, 29, 29).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabelTime).addComponent(jTextFieldTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(62, 62, 62).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButtonStart).addComponent(jButtonPause).addComponent(jButtonExit)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE).addComponent(jLabelTip).addGap(32, 32, 32)));pack();}// </editor-fold>//GEN-END:initComponents
Worker worker;private void stop() {//GEN-FIRST:event_stop// TODO add your handling code here:if(worker!=null){worker.die();worker=null;}}//GEN-LAST:event_stopprivate void pause() {//GEN-FIRST:event_pause// TODO add your handling code here:
worker.doPause();jButtonStart.setEnabled(true);jButtonPause.setEnabled(false);jTextFieldFile.setEditable(true);jTextFieldTime.setEditable(true);}//GEN-LAST:event_pauseprivate void start() {//GEN-FIRST:event_start// TODO add your handling code here:
String fileName=jTextFieldFile.getText().trim();if(checkFileName(fileName)){executableFileName=fileName;}else{return;}String time=jTextFieldTime.getText();if(time.length()==0){interval=defaultInterval;}else{try{long t=Long.parseLong(time);interval=t;}catch(NumberFormatException e){jLabelTip.setText("the time "+time+"is not correct!");return;}}if(worker==null){worker=new Worker(this.jLabelTip);worker.setExecutableFileName(executableFileName);worker.setInterval(interval);worker.start();jLabelTip.setText("start to execute file");}else{worker.setExecutableFileName(executableFileName);worker.setInterval(interval);worker.doResume();jLabelTip.setText("Restart to execute file");}jButtonStart.setEnabled(false);jButtonPause.setEnabled(true);jTextFieldFile.setEditable(false);jTextFieldTime.setEditable(false);}//GEN-LAST:event_startfinal static  long defaultInterval=1000;/*** @param args*/public static void main(String[] args) {String fileName="";long time=defaultInterval;if(args.length>0){fileName=args[0];if(!checkFileName(fileName)){fileName="";}}if(args.length>1){time=Long.parseLong(args[1]);}// TODO Auto-generated method stubnew Launcher(fileName,time).setVisible(true);}static boolean checkFileName(String fileName){if(fileName==null){return false;}if(!(fileName.endsWith(".exe")||fileName.endsWith(".bat")||fileName.endsWith(".cmd"))){System.out.println("the file must be a executable file!");System.out.println("Now only support *.exe , *.bat,*.cmd");System.out.println("Please check the file again");return false;}File file=new File(fileName);if(!file.exists()){System.out.println("the file:"+fileName+" is not exists");return false;}return true;}// Variables declaration - do not modify//GEN-BEGIN:variablesprivate javax.swing.JButton jButtonExit;private javax.swing.JButton jButtonPause;private javax.swing.JButton jButtonStart;private javax.swing.JLabel jLabelFile;private javax.swing.JLabel jLabelTime;private javax.swing.JLabel jLabelTip;private javax.swing.JTextField jTextFieldFile;private javax.swing.JTextField jTextFieldTime;// End of variables declaration//GEN-END:variablespublic void windowDeactivated(WindowEvent e){//System.out.println("window is deactivated");
}public void windowDeiconified(WindowEvent e){//System.out.println("window is Deiconified");
}public void windowActivated(WindowEvent e){//System.out.println("window is actived");
}public void windowOpened(WindowEvent e){//System.out.println("window is Opened");
}public void windowClosing(WindowEvent e){stop();}public void windowClosed(WindowEvent e){//System.out.println("window is Closed");
}public void windowIconified(WindowEvent e){//System.out.println("window is Closing");
}}

转载于:https://www.cnblogs.com/Free-Thinker/p/4580682.html

可执行文件启动器(下)相关推荐

  1. 使用PyInstaller2将Python脚本转化为可执行文件(下-进阶使用)

    <使用PyInstaller2将Python脚本转化为可执行文件(下-进阶使用)>,作者:balian,原文链接:http://www.cnblogs.com/balian/archive ...

  2. MFC更改环境目录可执行文件目录下继承的值

    前几天第一次装Opencv时不懂把openc环境配置的特别复杂,看了网上的一次型配置教程就, 配置完成在改就出大麻烦了,继承的值一直删不掉网上看到了教程是 打开电脑上 C:\Users(有些是&quo ...

  3. 遍历可执行文件所在目录下的指定类型的文件

    示例:遍历可执行文件目录下指定的txt类型的文件,编译环境vs2010,项目类型控制台输出程序: 代码实现: main.cpp // DocumentTraveral_demo.cpp : 定义控制台 ...

  4. vs 2010 下使用VLD工具

    名词解释: 1.stack trace:调用堆栈信息 2.debug heap:调试堆 3.Allocation Hook:向调试堆注册的回调函数,当申请内存时,调试堆即调用此回调函数 前言 VC++ ...

  5. java编译可执行文件_Java编译器完成但没有创建可执行文件?

    (我是Java新手,我不知道什么是'类'或'API'." 我试着编译( javac -g Sphinx.java )此代码: import java.io.File; import java ...

  6. Linux下core文件介绍与使用方法

    背景 有时当我们在Linux下编程,程序运行时会出现以下提示: Segmentation fault (core dumped) 然后,程序崩溃,退出运行.发生这一问题的原因往往是程序中指针不规范使用 ...

  7. 在安卓项目中使用gifsicle编辑GIF动图-Android NDK 编译 gifsicle 为可执行文件记录

    一.前言 最近项目中有需要压缩GIF的需求,最开始时试图使用FFmpeg通过降低GIF的分辨率和帧率的来减少GIF文件体积,但实际测试下来,大多数情况下压缩效果并不理想,甚至会出现降低分辨率后导出的G ...

  8. Win下基于通用C运行库UCRT的部署 - 及 {C++/CLI封装的托管dll被C#工程调用时出现未加载(could not load file or assembly)错误排查}

    目录 C++/CLI封装的托管dll被C#工程调用时出现未加载(could not load file or assembly)错误排查及基于通用C运行库UCRT的部署 0 问题分析 1 用于排查的工 ...

  9. uFTP-Linux下FTPServer实现

    uFTP-Linux下FTPServer实现 一.介绍 uFTP服务器是一个开源的,可移植的,轻量级的FTP服务器,用C编写,适用于Unix / Linux和POSIX兼容操作系统.uFTP服务器与所 ...

最新文章

  1. 数据蒋堂 | 大清单报表应当怎么做?
  2. 使用VS插件在VS2012/2013上编辑和调试Quick-Cocos2d-x的Lua代码
  3. 我的世界服务器反作弊不起作用,我的世界服务器反作弊怎么搞 | 手游网游页游攻略大全...
  4. 苹果开发几个常见的错误
  5. apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第2部分)
  6. html网页加入一个按钮,在html网页设计中,一个“登录”按钮怎么编写代码?
  7. 利用Python爬取网易上证所有股票数据(代码
  8. java maven导入导出_Java +EasyUI+SpringMvc实现Excle导入导出(上)
  9. 跑跑卡丁车rush服务器维护,跑跑卡丁车Rush+测试服
  10. 洛谷 P1433 吃奶酪 Label:dfs 剪枝Ex
  11. matlab求COPULA偏导,matlab note
  12. 计算机网络语音传输杂音回音,语音时有回音和杂音,怎么消除?
  13. 手机版的python怎么用,手机上如何使用python
  14. 公众号服务器配置如何不显示,公众号服务器配置信息怎么设置
  15. Python学习记录 基于《Python编程 从入门到实践》 Python基础 Python第三课 操作列表
  16. python excel 插入图片并设置好大小
  17. 学习英语01——听力——剑雅12 T6S2
  18. 4-3 使用函数计算两个复数之积 (10分)
  19. 【java】斐波那契数列
  20. 阿里云国际站购买服务器遇到实名失败是什么原因?

热门文章

  1. 删除表中所有记录只留下第一条,按照rownum排他,使用rowid删除
  2. 企业网络推广浅析网站首页什么样的布局有利于优化?
  3. 网站推广专员浅析关键词筛选决定网站推广的排名与流量
  4. mysql使用大内存页面,设置MySQL使用大内存页面
  5. android 第三方加密软件,Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发...
  6. 为什么我的开发方式如此愚蠢?
  7. 下载恶意pcap包的网站汇总
  8. 实践浅解free的具体作用(C语言)
  9. cents上运行wget报错:unable to resolve host address
  10. 删除目录下的特定命名的图片,获取特定名称图片的路径