如何在按下按钮时继续执行工作?

2023-11-23

我想在按下按钮时使用 Java 继续执行工作。当释放按钮时,工作应该停止。像这样的东西:

Button_is_pressed()
{
    for(int i=0;i<100;i++)
    {
        count=i;
        print "count"
    }
}

我怎样才能实现这个目标?


One way:

  • 将 ChangeListener 添加到 JButton 的 ButtonModel
  • 在此侦听器中检查模型的isPressed()方法并根据其状态打开或关闭 Swing 计时器。
  • 如果你想要一个后台进程,那么你可以用同样的方式执行或取消一个SwingWorker。

前者的一个例子:

import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class ButtonPressedEg {
   public static void main(String[] args) {
      int timerDelay = 100;
      final Timer timer = new Timer(timerDelay , new ActionListener() {

         @Override
         public void actionPerformed(ActionEvent e) {
            System.out.println("Button Pressed!");
         }
      });

      JButton button = new JButton("Press Me!");
      final ButtonModel bModel = button.getModel();
      bModel.addChangeListener(new ChangeListener() {

         @Override
         public void stateChanged(ChangeEvent cEvt) {
            if (bModel.isPressed() && !timer.isRunning()) {
               timer.start();
            } else if (!bModel.isPressed() && timer.isRunning()) {
               timer.stop();
            }
         }
      });

      JPanel panel = new JPanel();
      panel.add(button);


      JOptionPane.showMessageDialog(null, panel);

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

如何在按下按钮时继续执行工作? 的相关文章

随机推荐

  • uint64 对于 Matlab 中的向量来说并不精确

    我发现了一个不一致之处uint64在 Matlab 中使用向量时 看起来 uint64 数组并不完全适用于所有 64 位 这没有给出我预期的输出 p uint64 0 0 p 1 13286492335502040542 p 1328649
  • 如何将现有 Line2D 对象的样式复制到plot() 调用? (matplotlib)

    我需要提取a的样式信息matplotlib lines Line2D对象在 a 中使用它matplotlib pyplot plot 称呼 并且 如果可能的话 我想以一种比过滤样式相关属性更优雅的方式Line2D properties ou
  • git pull 失败“无法解析引用”“无法更新本地引用”

    使用 git 1 6 4 2 当我尝试git pull我收到此错误 error unable to resolve reference refs remotes origin LT558 optimize sql No such file
  • 什么是 numpy.core._multiarray_umath.implement_array_function 以及为什么它花费大量时间?

    我使用 numpy 进行大规模数据分析 有很多矩阵实现 例如 dot count nonzero linalg svd 后 prun在 Jupyter 笔记本中 我发现numpy core multiarray umath implemen
  • 此版本在 https://itunesconnect.apple.com 上无效

    我在 iTunes Connect 上遇到此错误 此构建无效 上传之前验证成功然后上传 但是上传完成后仍然出现错误 我已上传超过 10 次 但每次都会收到 此版本无效 的信息 甚至没有人从苹果收到任何有关此错误的电子邮件通知 Xcode 7
  • 在 android 上使用 com.android.camera.action.CROP 裁剪保存的图像

    我读过很多关于此的问题 但我仍然无法使用此代码 也许任何人都可以纠正我的代码 我想从我知道使用 com android camera action CROP 位置的文件中裁剪图像像这样 mImageCaptureUri Uri fromFi
  • 如何用字符串数组填充ListView?

    我想在我的 ListView 中显示这些项目
  • Python:为什么partition(sep)比split(sep, maxsplit=1)更快

    我发现了一个有趣的事情partition比split当获取分隔符后的整个子字符串时 我已经在 Python 3 5 和 3 6 Cpython 中进行了测试 In 1 s validate field name In 2 s partiti
  • Angular 2 中的全局管道

    我想让管道在所有应用程序中可用 根据我在 Angular 文档和互联网中读到的内容 如果我在根模块声明中声明一个管道 它会使该管道在所有应用程序中可用 我有这个AppModule代码 NgModule imports BrowserModu
  • 为什么 Google Play 商店没有显示应用程序设备不可用的原因?

    我是移动应用程序开发人员 也从事本机和 Phone Gap 方面的工作 我在 Phonegap 中构建了一个应用程序 该应用程序在设备中完美运行 但在某些选项卡中无法运行 我在这里找到的Google Play 商店政策 但是为什么他们没有显
  • 如何将项目添加到 magento 面包屑中

    我想在用户在 magento 前端导航我自己的模块时显示面包屑 该网站已经有适当的面包屑代码 可以根据标准 magento 面包屑在其他地方使用 我需要在模块中做什么来指定当前的面包屑路径 我希望能够以编程方式执行此操作 而不是在面包屑 p
  • postgresql 中不存在函数 min(uuid)

    我使用 sqoop 将表从 Postgres 导入到 hdfs 我的表有 uuid 字段作为主键 我的命令 sqoop 如下 sqoop import connect jdbc postgresql localhost 5432 mydb
  • R reshape2 中的cast()调用的自定义聚合函数出错

    我想使用 R 将具有非唯一行名称的表中的数字数据汇总到具有唯一行名称的结果表 并使用自定义函数汇总值 汇总逻辑是 如果最大值与最小值之比reshape2包裹 example table with non unique row names t
  • R 中的情感分析(不使用 tm.plugin.tags)

    我正在使用 R 版本 3 0 2 并已安装该软件包tm 之前我还加载了一个名为tm plugin tags 为了衡量文本语料库是正面还是负面 我使用了以下方法 library tm library tm plugin tags pos lt
  • eclipselink/Moxy:基于类型的继承和属性名称重载

    我面临着使用 MOXy 的 JAXB 实现和外部元数据绑定文件进行继承和多态性的编组 解组问题 我无法控制 XML 文件或模型类 模型内部有多个继承其他 DTO 类的类 这是我正在工作的环境的示例 这个示例仅出于某些语法目的 真实的环境涉及
  • 启动定位策略

    我通过 GPS 定期接收位置更新 问题是距离第一次位置更新发生的时间 太长了 当用户在建筑物内时 情况会变得更糟 因此我正在寻找一些策略来改善启动时间 目前我不使用getLastKnownLocation但我会 我开始读书深入了解位置得到一
  • PHP 7.2 中 mcrypt_encrypt 的完全替代方案

    由于 PHP 7 2 不再支持 mcrypt crypt 我正在尝试精确替代该函数 在阅读了许多 SO 答案后 我发现以下代码使用 PHPSECLIB 但它没有生成与 mcrypt 一样的精确加密文本 function encryptRJ2
  • XAML:如何仅在设计模式下更改背景颜色?

    我有一个具有白色文本前景色和透明背景色的控件 稍后此用户控件将被添加到带有真实背景颜色的不同控件中 然而在设计过程中 在VS 2010中控制白色背景上的白色前景 我明显看不到任何东西 无论如何 要在设计时定义不同的颜色吗 我已经尝试过这个
  • 生成二维数组的梯度图

    我有一个二维数组 它将每个点的属性值存储为其元素 f x y f x y 现在我想找到这个数组的梯度 我调查了np gradient但它只给出两个数组作为返回 第一个在 x 方向上具有导数 第二个在 y 方向上具有导数 我想了解如何使用此方
  • 如何在按下按钮时继续执行工作?

    我想在按下按钮时使用 Java 继续执行工作 当释放按钮时 工作应该停止 像这样的东西 Button is pressed for int i 0 i lt 100 i count i print count 我怎样才能实现这个目标 One