bpm节拍计数器算法求解

llw258258 2016-05-15 02:33:04
如下图,运行出来的窗口,不管怎么点击,计数值都没有反应


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;

/**
* Created by admin on 2016/5/8.
* 创建一个按钮,触发时获取当前时间
* 计算几次时间间隔的平均数,转换输出为bpm值
*/
public class Bpm extends Frame implements ActionListener {
private JButton beat;
private TextField bpm;


public Bpm() {

super("BPM计算");
this.setSize(200, 200);
this.setLocation(300, 240);
this.setBackground(Color.lightGray);
this.setLayout(new FlowLayout());

bpm = new TextField("0", 4);
this.add(bpm);
beat = new JButton("咚!");
this.add(beat);
beat.addActionListener(this);
this.addWindowListener(new WinClose());
this.setVisible(true);


}

public static void main(String args[]) {
new Bpm();
}

class WinClose implements WindowListener {
public void windowClosing(WindowEvent ev) {
System.exit(0);
}

public void windowOpened(WindowEvent ev) {
}

public void windowActivated(WindowEvent ev) {
}

public void windowDeactivated(WindowEvent ev) {
}

public void windowClosed(WindowEvent ev) {
}

public void windowIconified(WindowEvent ev) {
}

public void windowDeiconified(WindowEvent ev) {
}
}

public void actionPerformed(ActionEvent ev) {
Date[] date = new Date[180];
int i = 0;
long sum = 0;
if (ev.getSource() == beat) {
date[i] = new Date();
i++;
for (int j = 1; j < i; j++) {
long time = date[j].getTime() - date[j - 1].getTime();
sum = sum + time;
}

bpm.setText(String.valueOf(sum / i));//为什么这里无法使用j?

}
}
}

...全文
1082 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rencht 2016-05-16
  • 打赏
  • 举报
回复

	public void actionPerformed(ActionEvent ev) {
		Date[] date = new Date[180];
		int i = 0;
		long sum = 0;
		if (ev.getSource() == beat) {
			date[i] = new Date();
			i++;
			for (int j = 1; j < i; j++) {
				long time = date[j].getTime() - date[j - 1].getTime();
				sum = sum + time;
			}

			bpm.setText(String.valueOf(sum / i));// 为什么这里无法使用j?

		}
	}
每次点击按钮后,到第8行时:i=1,而j初始化为1,这个循环就直接退出了;因此sum取值0,sum / i取值自然是0。 不晓得你想实现的逻辑是什么样的。 至于为什么不能用j?因为不在它的作用域里。

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧