首页 > 解决方案 > 最近开始学习Java,我想创建一个计算点击次数的应用程序

问题描述

在此处输入图像描述 我想创建计算点击次数的应用程序,当我添加第二个按钮时,它计算两行而不是仅 1,例如,如果我单击第一个按钮,它应该只计算第一行,也适用于第二个按钮。但无论我点击哪个按钮,它都会计算两行

这是我的代码:

package com.company;

import javax.swing.BorderFactory;
import javax.swing.*;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;


public class Main implements ActionListener {
    private int number2 = 0;
    private int count = 0;
    private JLabel label;
    private JLabel label1;
    private JFrame frame;
    private JPanel panel;

    public Main(){
        frame = new JFrame();


        JButton button = new JButton("1st Player");
        JButton button1 = new JButton("2nd Player");
        button.addActionListener(this);
        button1.addActionListener(this);


        label = new JLabel("1. Number of clicks: 0 ");
        label1 = new JLabel("2. Number of clicks: 0 ");



        panel = new JPanel();
        panel.setBorder(BorderFactory.createEmptyBorder(50,50,10,50));
        panel.setLayout(new GridLayout(0,2 ));
        panel.add(button);
        panel.add(label);
        panel.add(button1);
        panel.add(label1);

        frame.add(panel, BorderLayout.CENTER);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("My first GUI");
        frame.pack();
        frame.setVisible(true);

    }

    public static void main(String[] args) {
    new Main();
    }
    @Override
    public void actionPerformed(ActionEvent e){
        count++;
        number2++;
        label.setText("1. Number of clicks: " + count);
        label1.setText("2. Number of clicks: " + number2);

    }

}

谢谢

标签: javaswing

解决方案


actionPerformed为两个按钮调用该方法,它同时增加两个计数器。如果你想有 2 个独立的计数器,你需要有两个不同的 ActionListener,每一个增加右键的计数器。


推荐阅读