Java 如何使JButton开始循环

Java 如何使JButton开始循环,java,swing,Java,Swing,我试图做一个定时器编程,将一个变量添加到一个变量中,然后每秒将其输出到一个JTextField。然而,我似乎无法按按钮启动计时器并使其继续运行。它总是加上一个,然后退出。我如何使它,使每当我按下开始按钮,计时器开始计数,直到我点击停止 // creates timer private Timer count; public static void main (String[] args) { //inits new timer and GUI timer frame = ne

我试图做一个定时器编程,将一个变量添加到一个变量中,然后每秒将其输出到一个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的新手,所以请检查是否存在任何不正确的格式。

以下是计时器按按钮启动和按按钮停止的代码

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();
    }
}       

您正在使用Swing
定时器吗?如果没有,那么你应该忘记停止按钮。首先,只需创建启动按钮,启动计时器,并在每次计时器启动时递增1。然后,一旦你得到了工作,你添加停止按钮。现在,您不知道问题是出在您添加的开始按钮还是停止逻辑上。简化问题,一次解决一个问题。如果你需要更多的帮助,那么就用你的开始按钮发布一个正确的说明。我不知道这是否更好,但我希望是这样!这是一个完整的例子吗?代码是如何编译的?你的定时器逻辑在哪里?。您所要做的就是向按钮添加一个ActionListener。您还需要一个用于计时器的ActionListener。所以按钮ActionListener中的所有代码都是启动计时器。然后计时器的ActionListener会增加时间。请阅读上Swing教程中的部分以获取示例。或者使用Timer类在web/表单中搜索示例。以下是计时器的基本示例:。计时器自动启动。因此,您需要修改代码,以创建一个按钮并启动计时器。