【问题标题】:Click counter keeps resetting to 0点击计数器一直重置为 0
【发布时间】:2021-05-06 05:03:38
【问题描述】:

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

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

【问题讨论】:

  • 您总是将“计数”设置回 0。
  • count =0 移到 actionPerformed 方法之外,但在侦听器类中。
  • @WJS 非常感谢!有效。如果需要,您可以将评论作为答案,我会将其标记为解决方案。
  • 不。别担心。此外,@camickr 领先我几秒钟。大声笑。

标签: java swing user-interface counter


【解决方案1】:

感谢评论了答案的用户 WJS,我不得不简单地将 count =0 移动到 actionPerformed 方法之外但在侦听器类中。

【讨论】:

    【解决方案2】:

    在每次点击时,您都将counter 再次设置为零,然后显示增加的值,并且在每次点击后counter 的值重置为零。

    您需要将计数移出actionPerformed

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多