java - 在 Java 中计算点击次数
问题描述
introduceButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
int agex = Integer.parseInt(datafield.getText());
String box[] = {"paws quantity", "tail(cm)","paws qy"};
ArrayList<Integer> objdata = new ArrayList<Integer>();
for(int z = 0; z < 3;){
introduceButton
txtvar.setText(box[z]);
if (introduceButton.getModel().isEnabled() == true){
z++;
}
}
}
});
嘿,伙计们,我尝试逐步计算按下按钮的次数,以便稍后在数组中导航。问题在于,在单击按钮一次后,变量 z 不会仅增加 1,而是在第一次单击后立即达到最大值。我该如何解决?我也尝试使用方法计数器创建一个类,但它的值仍然为 0:
class click{
int _incr;
public click(int incr){
_incr = incr;
}
public int count(){
_incr++;
return _incr;
}
}
...
introduceButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
int agex = Integer.parseInt(datafield.getText());
String box[] = {"paws quantity", "tail(cm)","paws qy"};
ArrayList<Integer> objdata = new ArrayList<Integer>();
click clck = new click(0);
txtvar.setText(Integer.toString(clck._incr));
/*for(int z = 0; z < 3;){
txtvar.setText(box[z]);
if(introduceButton.getModel().isEnabled() == true){
z++;
}
}*/
objdata.add(agex);
dog abstractdog = new dog(agex, agex, agex);
}
});
解决方案
我做了一个示例代码。请看一下:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CountClick {
static int clicks = 0;
public static void main(String[] args) {
Frame f = new Frame("Button Example");
Button btn = new Button("Click me");
btn.setBounds(50, 100, 80, 30);
f.add(btn);
// set size, layout and visibility of frame
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
// add listener
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// increase click int
clicks++;
// print clicks
System.out.println(clicks);
}
});
}
}
请注意,每次按下按钮时都会触发“addActionListener”中的代码。因此,应避免其中不必要的操作。在“addActionListener”方法中也应该小心使用初始化。
编辑:如果你想有一个单独的点击类,你可以看看下面的代码示例:
class Click {
private int click = 0;
public void increaseClick() {
click++;
}
public int getClick() {
return click;
}
}
public class CountClicks {
public static void main(String[] args) {
Frame f = new Frame("Button Example");
Button btn = new Button("Click me");
btn.setBounds(50, 100, 80, 30);
f.add(btn);
// set size, layout and visibility of frame
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
Click click = new Click();
// add listener
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// increase click int
click.increaseClick();
// print clicks
System.out.println(click.getClick());
}
});
}
}
推荐阅读
- java - 需要有关如何使用 Firebase 构建我的应用后端的建议
- html - 两人如何在 Azure 上为同一个域设置三个应用服务
- python - 将数据框和去重数据框之间的缺失值配对并输出到 csv
- css - 获取固定位置元素不阻塞其他内容
- qt - Qml沿一行拆分Gridview
- ios - 从 UIAlertAction 处理程序更新 UILabel 在 Swift 4 中不起作用
- python - 为什么 ARIMA 不能处理我的时间序列数据?
- android - 错误:从 minSdkVersion 16 升级到 minSdkVersion 23 时,包 android.support.multidex 不存在
- python - 如何打开包含数千张人脸图像的 .raw 文件进行分类
- lua - 如何获取表中条目的列出次数