按钮动作监听器

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(使用前将#替换为@)

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

随机推荐

  • 后台位置跟踪: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