ストップウォッチの開始/停止は、スペースバーを使用してのみ行います。私はすでにKeyListenersを作っていて、スペースバーを押して離したときにのみアクティブになります。私がこれまで試したどのようなスペースバーのみでストップウォッチを開始/停止するにはどうすればよいですか?
:
私は私が初めてのためのスペースを押すと、目と2回目との間の時間差を計算する必要がありますされ、ストップウォッチのクラスを作成してみました。毎秒スペースキーを押すだけで
public class Stopwatch {
public Stopwatch(int i) {
long time = System.currentTimeMillis();
if(i%2==1){
System.out.println("Timer Started at: " + time);
}else{
System.out.println("Timer stopped at: " + System.currentTimeMillis());
System.out.println("Time diff: " + (time - System.currentTimeMillis()));
}
}}
int i
増加:次のように私はそれを試してみました。
私はこのクラスを開始するたびにtime
がSystem.currentTimeMillis()にリセットされていることを知っています。スペースバーだけを押すためです。したがって、その差は常に0です。
私は最初にスペースを押した時間をどうにか保存できるように変更するにはどうすればよいですか?
Keylistenersを持つクラスです。スクランブラークラスを無視して、それは私の問題とは関係ありません。
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class StoppuhrFrame extends JFrame {
JLabel time, scramble;
public StoppuhrFrame() {
time = new JLabel("00:00:00");
time.setBounds(162, 45, 325, 80);
time.setFont(new Font("Arial", 100, 80));
add(time);
scramble = new JLabel("Scramble: ");
scramble.setBounds(165, 15, 370, 16);
add(scramble);
//Scrambler scrambler = new Scrambler(scramble);
addKeyListener(new timer());
setTitle("Cube Timer");
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setSize(650, 270);
setVisible(true);
}
int i = 1;
public class timer implements KeyListener {
@Override
public void keyPressed(KeyEvent keyEvent) {
if(keyEvent.getKeyCode()==32){
new Stopwatch(i);
i++;
}
@Override
public void keyReleased(KeyEvent arg0) {
if (arg0.getKeyCode() == 32) {
if(i%2==0){
//new Scrambler(scramble);
}
}
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}}
ありがとうございます。
キーを押すたびに新しいストップウォッチオブジェクトを作成するのはなぜですか?また、「1」になっても決して増えないので、「i」は決して変更されません。 – RealSkeptic
キーイベントでストップウォッチロジックを実装しないのはなぜですか? – XtremeBaumer
@realskeptic right、私はそれが変更できるように変更しました。 – fihdi