点击计数器一直重置为 0
Click counter keeps resetting to 0
该程序应该计算鼠标点击次数,但它只计算第一次点击次数。代码并不复杂,但我不明白为什么它只计算第一次点击。
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,我不得不简单地将计数 =0 移动到 actionPerformed 方法之外,但在侦听器中 class。
每次点击时,您都会将 counter
再次设置为零,然后显示增量值,每次点击后 counter
的值将重置为零。
您需要将计数移到 actionPerformed
之外
int count = 0;
private class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
count++;
label.setText("Number of Mouse Clicks = " + count);
}
}
该程序应该计算鼠标点击次数,但它只计算第一次点击次数。代码并不复杂,但我不明白为什么它只计算第一次点击。
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,我不得不简单地将计数 =0 移动到 actionPerformed 方法之外,但在侦听器中 class。
每次点击时,您都会将 counter
再次设置为零,然后显示增量值,每次点击后 counter
的值将重置为零。
您需要将计数移到 actionPerformed
int count = 0;
private class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
count++;
label.setText("Number of Mouse Clicks = " + count);
}
}