按钮动作监听器

2024-02-01

好的,所以我制作了一个简单的程序,每次单击按钮时都会添加要计数器的值。 现在,我想添加“自动”按钮功能,以在单击“自动”按钮时增加计数器的值。我遇到了问题,因为它不会在屏幕上呈现每个计数器值,而是在循环完成时更新值。这是我的代码:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.concurrent.TimeUnit;
import javax.swing.JButton;
import javax.swing.JFrame;


public class Gui extends JFrame{

    private static final long serialVersionUID = 1L;

    private JButton uselesButton;

    private JButton autoButton;

    private FlowLayout layout;
    private long counter = 0;

    public Gui() {
        super("Button");
        layout = new FlowLayout(FlowLayout.CENTER);
        this.setLayout(layout);

        uselesButton = new JButton(String.format("Pressed %d times", counter));
        add(uselesButton);
        uselesButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                counter++;
                uselesButton.setText(String.format("Pressed %d times", counter));
            }

        });

        autoButton = new JButton("Auto");
        add(autoButton);
        autoButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                        for(long i =0; i < 99999999;i++) {
                        try {
                            TimeUnit.MILLISECONDS.sleep(10);
                        } catch (InterruptedException e1) {
                            System.out.println("ERROR");
                        }
                        counter = i;
                        uselesButton.setText(String.format("Pressed %d times", counter));
                    }
                    }
        });
    }
}

请记住,我是初学者......感谢所有帮助:)


看看关于如何使用的教程摇摆计时器 http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html然后看看我的解决方案:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Gui extends JFrame {

    private static final long serialVersionUID = 1L;
    private JButton uselesButton;
    private JButton autoButton;
    private FlowLayout layout;
    private long counter = 0;
    private javax.swing.Timer timer;

    public Gui() {
        super("Button");
        layout = new FlowLayout(FlowLayout.CENTER);
        setLayout(layout);
        setDefaultCloseOperation(3);
        setSize(300, 300);
        setLocationRelativeTo(null);

        //initialing swing timer
        timer = new javax.swing.Timer(100, getButtonAction());

        autoButton = new JButton("Auto");
        add(autoButton);
        autoButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (!timer.isRunning()) {
                    timer.start();
                } else {
                    timer.stop();
                }
            }
        });
    }

    private ActionListener getButtonAction() {
        ActionListener action = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                autoButton.setText(String.format("Pressed %d times", ++counter));
                if (counter > 1000) {
                    timer.stop();
                }
            }
        };
        return action;
    }

    public static void main(String... args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Gui().setVisible(true);
            }
        });
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按钮动作监听器 的相关文章

  • 在文本文件中写入多行(java)

    下面的代码是运行命令cmd并使用命令行的输出生成一个文本文件 下面的代码在 Eclipse 的输出窗口中显示了正确的信息 但在文本文件中只打印了最后一行 谁能帮我这个 import java io public class TextFile
  • 使用 JPA Criteria API 进行分页的总行数

    我正在系统中为实体实现 高级搜索 功能 以便用户可以使用该实体的属性上的多个条件 eq ne gt lt 等 来搜索该实体 我正在使用 JPA 的 Criteria API 动态生成 Criteria 查询 然后使用setFirstResu
  • 如何使用 Java 处理 Selenium WebDriver 中的新窗口?

    这是我的代码 driver findElement By id ImageButton5 click Thread sleep 3000 String winHandleBefore driver getWindowHandle drive
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • java中如何连接字符串

    这是我的字符串连接代码 StringSecret java public class StringSecret public static void main String args String s new String abc s co
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • 如何安全地解决这个 Java 上下文类加载器问题?

    我的数百名用户中只有一位在启动我的 Java 桌面应用程序时遇到问题 他只有大约三分之一的时间开始 另外三分之二的时间在启动时抛出 NullPointerException Exception in thread AWT EventQueu
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • Struts 2 + Sitemesh 3 集成 - FreemarkerDecoratorServlet 中的 NPE

    我将 Struts 2 版本 2 3 14 3 与 Sitemesh 3 版本 3 0 alpha 2 一起使用 并且在某些情况下遇到 NullPointerException 首先 这是我的 web xml 中的 struts2 site
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import

随机推荐

  • 后台位置跟踪:iOS

    我正在尝试在苹果的重要位置更改服务和自己定期启动 停止位置管理器之间做出选择 苹果对此是这么说的 收集位置数据是一项耗电的操作 它涉及打开机载无线电并查询可用的手机信号塔 Wi Fi 热点或 GPS 卫星 这可能需要几秒钟的时间 让标准定位
  • 如何使用 AppleScript 将窗口移动到某个桌面?

    我在桌面 1 OS X Lion 上有一个应用程序 窗口 我想将其移动到桌面 3 关于如何执行此操作有什么见解吗 没什么大不了的 但如果可能的话 我想确保有 3 个且只有 3 个可用的桌面 这个答案 https stackoverflow
  • 在Python中用另一个子列表替换一个子列表

    我想替换列表中的子列表a 还有另一个子列表 像这样的事情 a 1 3 5 10 13 假设我想要一个子列表 例如 a sub 3 5 10 并将其替换为 b sub 9 7 所以最终结果将是 print a gt gt gt 1 9 7 1
  • 角度$resource删除不会将正文发送到express.js服务器

    hye 我正在服务器端使用 angular js 和 node js Express js 构建一个应用程序 由于某种原因 我在处理删除请求时遇到问题 没有人到达服务器端 这是我的 angular js 资源代码 scope deleteP
  • Rails:带有参数的 rake 任务不起作用

    这是我的耙子任务 namespace users do task change role role gt environment do t args puts args role end end 我这样称呼它 rake users chan
  • 什么是图形上下文? (iOS)

    图形上下文到底是什么 当使用 Core Graphic 绘图时 我们会获得对上下文的引用 当我查看文档时 它似乎是一个对象 负责处理正确的绘图 无论是用于打印 设备 pdf 等 谁能帮助我理解上下文到底是什么 我尝试阅读文档 但我不明白 它
  • Oracle 协议适配器错误

    你好 我刚刚在我的笔记本电脑上安装了 Oracle 10 g Express Edition 平台是Windows XP SP3 安装正常 但是 当我尝试通过 SqlPlus 连接到 Oracle 数据库时 出现 TNS 协议适配器错误 我
  • ServicePointManager.SecurityProtocol 如何工作?

    我想知道楼盘怎么样ServicePointManager SecurityProtocol当我设置三个不同的时有效SecurityProtocolType在她的旗帜上 IE ServicePointManager SecurityProto
  • 什么是“git config user.password”?

    我见过git config user password在几个 Stack Overflow 答案中推荐作为保存 git 用户凭据的方法 如何在 Git 中保存用户名和密码 https stackoverflow com a 54979082
  • ESLint 错误 no-unneed-ternary

    ESLint 在我的 JS 模块中告诉我这个错误消息 错误 no unneeded ternary 不必要地使用条件表达式进行默认赋值 错误出现在get方法上的return陈述return val val defaultVal import
  • Auth0。如何获取访问令牌中用户的权限?

    如何使用 Auth0 的核心授权功能 在第一个授权请求中 获取访问令牌中的用户权限 我需要所有权限的数组以及有关用户的其他信息 附 我已经创建了角色 权限 并将角色分配给用户 在 API 设置中的访问令牌切换和 RBAC 中启用添加权限 这
  • 讲解extjs的MVC架构

    我使用 Javascript 创建了一个小型数独应用程序 现在我正在尝试将该 javascript 代码转换为 extjs 4 1 1a 代码 我已经经历了docs http docs sencha com ext js 4 1 guide
  • 使用jquery添加两个变量

    var a 1 var b 2 var c a b c将显示为12 但是我需要3 我如何使用 jQuery 做到这一点 绝对使用 jQuery 因为 jQuery 的威力显然是无与伦比的 下面是如何使用 100 jQuery var a 1
  • 如何使用R做多项选择题?

    我试图弄清楚如何分析我最近进行的一项调查中的多个选择 多个响应 即 选择所有适用的 问题 SPSS 具有分析在线调查数据和此类问题的出色功能 因此我猜测 R 具有该功能以及更多功能 在 Excel 中处理这些调查答案有点棘手 例如 按年龄显
  • Pathauto 中的菜单路径

    如何在 Drupal 7 下获取 pathauto 以通过完整菜单路径生成 URL 别名 只是一个更新 以防有人在使用更新版本的 Pathauto Token 时遇到此问题 这对我有用 节点 菜单链接 父母 加入路径 节点 菜单链接
  • 为什么0=0.5?

    我注意到 Z3 4 3 1 在处理 smt2 文件时出现一些奇怪的行为 If I do assert 0 0 5 就会得到满足 但是 如果我改变顺序并执行 assert 0 5 0 这是不能令人满意的 我对发生的情况的猜测是 如果第一个参数
  • pandas:将多列转换为字符串

    我有一些专栏 a b c etc a and c are float64 while b is object 我想将所有列转换为字符串并保留nans 尝试使用df a b c df a b c astype str 但这留下了空白float
  • spring-boot 数据源配置文件 w/ application.properties

    根据反馈更新了问题 我有一个 spring boot 应用程序 它具有三个数据库 用于集成测试的 H2 以及用于质量保证和生产的 Postgresql 由于 spring boot 为您创建了默认数据源 因此我没有为集成测试定义任何内容 我
  • PHP 在特定索引处插入

    我想将第一个索引处的数组元素移动到数组中的第五个索引 我怎样才能做到这一点 尽管目前对于您提出的问题至少有 2 个有效答案 但数组并不是保存频繁更改且排序很重要的列表的正确数据结构 随着数组大小的增加 这些解决方案将开始变得非常慢 正确的结
  • 按钮动作监听器

    好的 所以我制作了一个简单的程序 每次单击按钮时都会添加要计数器的值 现在 我想添加 自动 按钮功能 以在单击 自动 按钮时增加计数器的值 我遇到了问题 因为它不会在屏幕上呈现每个计数器值 而是在循环完成时更新值 这是我的代码 import