当前位置: 首页 > 知识库问答 >
问题:

如何让JButton开始循环

鲜于海
2023-03-14

我正在尝试制作一个计时器编程,它将一个变量添加到一个变量中,然后每秒钟将其输出到JTextField。然而,我似乎无法获得启动计时器并使其继续运行的按钮。它总是添加一个,但随后退出。我如何使它每当我按下开始按钮时,计时器就开始计数,直到我按下停止?

// creates timer
private Timer count;


public static void main (String[] args) {
    //inits new timer and GUI
    timer frame = new timer();
    frame.setSize(400,150);
    frame.createGUI();
    frame.setVisible(true);
}

//adds start to window
start = new JButton("Start Timer");
    window.add(start);
    start.addActionListener(this);

//actionPerformed class
public void actionPerformed(ActionEvent event) {


    if(event.getSource() == start) {
        min1.setText(Integer.toString(time / 60));
        sec1.setText(Integer.toString(time % 60));
        time++;
        }
    else {
        time++;
    }

我是stackoverflow的新手,所以请排除任何不正确的格式

共有1个答案

拓拔俊艾
2023-03-14

下面是一段代码,其中定时器按按钮启动,也按按钮停止。

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

class Example implements ActionListener {
    Timer timer;
    int count=0;
    JButton startButton;
    JButton stopButton;
    JLabel countLabel;
    JFrame frame;
    JPanel contentPane;

    public Example() {
        frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        contentPane = new JPanel();
        startButton = new JButton("Start");
        startButton.addActionListener(this);

        stopButton = new JButton("Stop");
        stopButton.addActionListener(this);

        countLabel = new JLabel("0");

        contentPane.add(startButton);
        contentPane.add(countLabel);
        contentPane.add(stopButton);

        ActionListener listener = new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
                            count++;
                countLabel.setText(count+"");
                    }
                };
        timer = new Timer(100,listener);
        frame.setContentPane(contentPane);
        frame.pack();
        frame.setVisible(true);

    }

    @Override 
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == startButton) {
            timer.start();
        }
        if(e.getSource() == stopButton) {
            timer.stop();
        }
    }
    public static void main(String args[]) {
        new Example();
    }
}       
 类似资料:
  • 我正在尝试使用Axon和Saga设计模式在Micorservices之间发送数据,使用Java我有两个服务,一个用于订单,一个用于产品CQRS设计模式完美地工作,我的意思是我将数据发送到axon,我在仪表板中看到它,然后通过查询数据获取并保存在读取数据库(MySQL)中。今天我尝试使用Saga设计模式,当创建新订单时,将保留产品命令发送到axon并通过产品服务获取,但saga没有事件启动,我不知道

  • 例如,假设JFrame类称为frame,两个JPanel类称为panel1和Panel2。如果在panel1中点击了一个按钮,你如何告诉框架移除panel1并添加Panel2?

  • 问题内容: 我有一个位于JButton顶部的JLabel,但它不会显示在顶部。注释掉JButton的代码后,将显示JLabel,这意味着它在其中,但在底部。有没有办法在JButton的顶部显示JLabel? 任何帮助都是极好的。谢谢! 编辑: 为了澄清起见,我需要在游戏中使用该按钮,单击该按钮时,按钮上方会显示一个JLabel,以显示添加的“得分”。在我的游戏中,JLabel将比JButton小,

  • 我如何使它再次循环回到FOR循环的开始?我试着寻找答案。continue的用法似乎对我不起作用。

  • 使用代码模板 如果使用离线工具如Sublime Text来开发的话,您需要按照如下步骤准备好开发环境: 一个包含 直接引用JS 我们还可以直接引用CDN上已经构建好的JS脚本,如下在HTML中添加一个 <script> 标签: <!-- Production Version, Minified --><script src="https://aframe.io/releases/1.1.0/afr

  • 我不知道怎么做,但我希望我的JButton在按下时开始运行一个方法,然后在我再次单击它时暂停该方法。此外,该方法应该连续运行。现在,我的按钮不会暂停和启动,也不会连续运行。 我知道我的问题的答案就在那里,但我的尝试刚刚在一个牢不可破的while循环中结束。 我问了其他人,他们告诉我必须在一个单独的线程中运行一些东西。问题是,我对线程一无所知。没有线程还有其他方法吗?