Witam,
musze napisac funkcje ktora bedzie odliczala czas pomiedzy naduszaniem klawiszy na klawiaturze. na poczatek chociaz pomiedzy dwoma. jak sie za to zabrac?
Witam,
musze napisac funkcje ktora bedzie odliczala czas pomiedzy naduszaniem klawiszy na klawiaturze. na poczatek chociaz pomiedzy dwoma. jak sie za to zabrac?
Ma to być program w konsolce i w konsolce będziesz te klawisze naciskał? Czy raczej program w tle, bez focusu myszki, który odlicza odstępy między uderzeniami w klawiaturę?
założmy ze klikamy myszka start potem oblicza czas pomiedzy kazdym wduszanym klawiszem az do naduszenia myszka przycisku stop
zczytuj na key event listenera czas systemowy i voila
a cos wiecej ? bo nie bardzo wiem co masz na mysli
Łap przykład na dwóch buttonach, wystarczy dodać jakiegoś globalnego KeyListenera.
import java.awt.EventQueue;
import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
public class CountSeconds {
private JFrame frame;
private JButton buttonStart, buttonOblicz;
private long myTime;
private JTextField textFieldTookSeconds;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
CountSeconds window = new CountSeconds();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public CountSeconds() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 317, 66);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
buttonStart = new JButton("Start");
buttonStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
myTime = System.currentTimeMillis();
//System.out.println("Ustawiono nowy czas poczatkowy");
}
});
frame.getContentPane().add(buttonStart);
buttonOblicz = new JButton("Oblicz");
buttonOblicz.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
long result = (System.currentTimeMillis() - myTime) / 1000;
textFieldTookSeconds.setText(String.valueOf(result));
//System.out.println("Zajelo sekund: " + (System.currentTimeMillis() - myTime) / 1000);
}
});
frame.getContentPane().add(buttonOblicz);
textFieldTookSeconds = new JTextField();
textFieldTookSeconds.setEditable(false);
frame.getContentPane().add(textFieldTookSeconds);
textFieldTookSeconds.setColumns(5);
}
}