执行 .bat 文件时启用按钮

2024-03-26

我有一个带有打开按钮和后退按钮的表单。我通过打开按钮打开批处理文件,在执行批处理文件时,其他按钮被禁用。我想启用这些按钮。请帮我。

运行批处理文件代码:

private void openActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    // back.setEnabled(true);
    String filename = "C:\\JMeter Project\\jakarta-jmeter-2.5.1\\bin\\jmeter.bat";
    String command = filename;
    Runtime runtime = Runtime.getRuntime();
    try {
        Process process = runtime.exec(command);
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line = reader.readLine();
        while (line != null) {
            System.out.println(line);
            line = reader.readLine();
            System.out.println(line);
        }
        back.setEnabled(true);
        JOptionPane.showMessageDialog(null, "Batch file executed successfully.....!!!!");
    } catch (IOException e) {

        JOptionPane.showMessageDialog(null, "Batch file execution failed.");
    }
    // Form f=new Form();
    // back.action(f.setVisible(true),null);   

}

返回按钮代码:

private void backActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    close();
    sms_sound s = new sms_sound();
    //s.setVisible(true);
    Form f = new Form();
    f.setVisible(true);
    //  back.setEnabled(true);
}

您正在阻塞事件调度线程,这会阻止它处理任何重绘请求。

您应该将“批处理”代码移至后台线程,例如SwingWorker http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html对于这个问题来说会非常好。

添加了示例

public class BatchRunner extends SwingWorker<Integer, String> {

    @Override
    protected Integer doInBackground() throws Exception {
        String filename = "C:\\JMeter Project\\jakarta-jmeter-2.5.1\\bin\\jmeter.bat";
        String command = filename;
        Runtime runtime = Runtime.getRuntime();
        Process process = runtime.exec(command);
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line);
            publish(line);
        }
        return process.exitValue();
    }

    @Override
    protected void process(List<String> chunks) {
        // You can process the output produced
        // the doBackgroundMethod here within the context of the EDT
    }

    @Override
    protected void done() {
        try {
            Integer result = get();
            if (result == 0) {
                JOptionPane.showMessageDialog(null, "Batch file executed successfully.....!!!!");
            } else {
                JOptionPane.showMessageDialog(null, "Batch file returned an exit value of " + result);
            }
        } catch (InterruptedException | ExecutionException | HeadlessException interruptedException) {
            JOptionPane.showMessageDialog(null, "Batch file execution failed.");
        }
        back.setEnabled(true);
    }
}

当您准备好执行批处理程序时,只需执行以下操作:

back.setEnabled(false);
new BatchRunner().execute();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

执行 .bat 文件时启用按钮 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的

随机推荐

  • 使用单个字符或仅一个字符串进行 boost split

    我希望将字符串拆分为单个字符或字符串 我想用boost split因为 boost string 是我们基本字符串处理的标准 我不想混合几种技术 在单个字符的情况下我可以做split vec str is any of 但我想知道是否有办法
  • boost 的另一个“ld:未找到架构 x86_64 的符号”问题,这次是 mgiza

    我很抱歉问了这样一个常见的问题 我找不到任何可行的或足够清晰的解决方案供我实施 我只是想安装mgiza https github com moses smt mgiza 这是安装文件 cmake make make install If y
  • 监听队列(事件驱动,无轮询)服务总线/存储队列

    我试图弄清楚如何侦听队列上的事件 尤其是入队事件 假设我有一个控制台应用程序和一个服务总线队列 主题 如何连接到队列并等待新消息 我试图在没有While true 和不断的轮询 我试图以一种相当监听的方式来做更多的事情 比如保持连接到队列的
  • Grails 全局约束

    在 1 2 版本中 Grails 引入了全局约束 我尝试将以下内容添加到 Config groovy grails gorm default constraints notBlank nullable false blank false 然
  • NHibernate ThenFetchMany 正在检索重复的子项

    我有一个父对象 其子集合包含一个元素 子集合包含一个包含 3 个元素的 孙子 集合 我使用 NHibernate 从数据库加载父对象 如下所示 Parent parentObject session Query
  • Start-Process 与 Start-Sleep 不能很好地配合

    我的目标是运行多个进程并保存它们ProcessName and Id供以后使用 这是我的代码 System Collections ArrayList startedProcesses processStatus Start Process
  • 简单/基本的隐写算法和方法

    最基本和最简单的是什么隐写算法和方法 我的意思是应用于图像的隐写术 将数据隐藏到图像的简单程序如何工作 主要使用了哪些技术 程序如何在没有源图像的情况下识别图像中的加密消息 基本且最简单的隐写算法和方法是什么 我的意思是应用于图像的隐写术
  • Three.js ShaderMaterial 灯光问题

    你好 这是我的代码的一部分 地球仪 function createGlobe var normalMap THREE ImageUtils loadTexture images earth normal 2048 jpg var surfa
  • 在 django admin 过滤器 list_filter 中选择多个选项?

    目前我通过 django 管理界面中的某些选项进行过滤 例如 假设我按 按状态 过滤 是否可以选择多个状态来过滤结果 这是过滤器的屏幕截图 我可以从此列表中选择多个项目吗 不在管理 UI 中 但如果修改 URL 则可以使过滤条件更加复杂 例
  • EF 4.3(代码优先)- 确定何时将项目添加到虚拟 ICollection 属性

    当从查询加载 ICollection 虚拟成员时 有什么方法可以确定实际项目何时添加到 ICollection 虚拟成员中 希望下面的代码能够证明我的观点 public class DbAppointment public DbAppoin
  • F# 类型和循环

    我正在编写一个创建一副纸牌的 F 教程 列出了类型 但我无法理解如何循环遍历类型来创建完整套牌的地图 我期望做类似的事情 Foreach rank in ranks Foreach suit in suits somehow combine
  • 通过 Azure KeyVault 禁止控制台日志记录

    我正在 Net Core 2 控制台应用程序中使用 C 访问 Azure 密钥保管库 每当应用程序运行时 当我从保管库检索机密时 控制台窗口都会收到如下消息 2017 12 26T18 03 49 8610049Z 29c98a86 9e1
  • 如何为 iOS 和 macOS 编译 libffi?

    我正在尝试使用libffi https github com atgreen libffi在我的一个项目中 但我似乎无法为 iOS 或 macOS 就此而言 进行编译 以下是我在构建 iOS 模拟器时遇到的各种错误之一 bash src a
  • Python 3 async for 循环中的类型错误

    我正在学习 Python 相对较新的异步功能 我发现这个在PEP 492 https www python org dev peps pep 0492 example 2 以下是一个实用程序类 它将常规迭代转换为 异步的 虽然这不是一件非常
  • 尝试运行不和谐机器人时出错(python)

    File dban py line 1 in
  • 更改消息名称

    这是我的 WSDL 的一部分 我正在使用代码优先的方法
  • 检查产品变体是否在 Woocommerce 的购物车中

    我正在尝试显示产品的变体是否已在购物车中 在单个产品页面中 产品 ID 与购物车对象中的产品的简单比较不适用于可变产品 因为变体 ID 是使用 ajax 加载的 这是我的代码 适用于产品类型不是变量的情况
  • Python“decimal”包给出错误的结果

    我尝试通过设置来计算以下内容getcontext prec 800 gt gt gt from decimal import gt gt gt getcontext prec 800 gt gt gt Decimal 22 0 Decima
  • 使用jquery和参数调用WCF服务

    好吧 这是这些基本问题之一 但我现在已经用谷歌搜索和调试了两个小时 但错误没有消失 简单场景 WCF 服务 其方法带有我想通过 jquery 调用的参数 我可以调用不带参数的方法 但是使用参数时 调用永远不会到达 NET 中的断点 服务器代
  • 执行 .bat 文件时启用按钮

    我有一个带有打开按钮和后退按钮的表单 我通过打开按钮打开批处理文件 在执行批处理文件时 其他按钮被禁用 我想启用这些按钮 请帮我 运行批处理文件代码 private void openActionPerformed java awt eve