Java 单击计数器将继续重置为0

Java 单击计数器将继续重置为0,java,swing,user-interface,counter,Java,Swing,User Interface,Counter,这个程序应该计算鼠标点击次数,但它只计算第一次。代码并不复杂,但我不明白为什么它只计算第一次点击 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class swing { private JLabel label; public swing() { JFrame frame = new JFrame("exemple"); f

这个程序应该计算鼠标点击次数,但它只计算第一次。代码并不复杂,但我不明白为什么它只计算第一次点击

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

public class swing {
    private JLabel label;

    public swing() {
        JFrame frame = new JFrame("exemple");
        frame.setBounds(200, 200, 200, 200);
        
        JButton button = new JButton("clic clic");
        button.addActionListener(new MyActionListener());
        label = new JLabel("0");
        JPanel pane = new JPanel();
        pane.add(button);
        pane.add(label);
        frame.getContentPane().add(pane,
        BorderLayout.CENTER);
        frame.show();
    }
    private class MyActionListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            int count = 0;
            count++;
            label.setText("Number of Mouse Clicks = "+ count);
        }
    }

    public static void main(String[] args) {
            new swing();
    }
}

感谢用户WJS提供了答案,我只需将count=0移到actionPerformed方法之外,但移到listener类内部。

每次单击时,您都将
计数器再次设置为零,然后显示递增的值,每次单击后
计数器的值都重置为零

您需要将计数移到
actionPerformed

int count = 0;
private class MyActionListener implements ActionListener {
    public void actionPerformed(ActionEvent event) {
        count++;
        label.setText("Number of Mouse Clicks = " + count);

    }
}


您总是将“计数”设置回0。将您的
count=0
移到
actionPerformed
方法之外,但移到侦听器类内部。@WJS非常感谢您!成功了。如果你愿意,你可以把评论作为答案,我会把它标记为解决方案。不。别担心。此外,@camickr比我领先了几秒钟。英雄联盟