java - 最近开始学习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);
}
}
谢谢
解决方案
actionPerformed
为两个按钮调用该方法,它同时增加两个计数器。如果你想有 2 个独立的计数器,你需要有两个不同的 ActionListener,每一个增加右键的计数器。
推荐阅读
- python - 使用滑块小部件过滤和更新交互式散景可视化
- c# - 反序列化对象数组:无法将 JSON 值转换为 System.String[]
- hyperledger-fabric - 尝试更新 Anchor Peer 时出现错误 SERVICE_UNAVILABLE
- python - 编写代码以在对象上生成随机颜色
- c++ - 如何从文件中获取字体名称?
- django - Django Rest:为什么访问被拒绝,尽管 AccessAny 设置为权限?
- date - 从日期字段中选择日期时出现 ExtJS 错误
- asp.net-core - 使用 AspNet Core 和 API Gateway 的 Lambda 函数的 Cors 错误
- c++ - 在 Visual Studio Code 中使用 C++ 读取 csv 文件并将数据存储在数组中
- javascript - 我如何在反应中使用 MS 图形 API?