나는 reminderList
이라는 목록을 가지고 있습니다.마우스 종료 이벤트에서 타이머를 시작하고 마우스 입력 이벤트에서 동일한 타이머를 중지하는 방법은 무엇입니까?
마우스가 목록의 항목을 클릭하고 마우스가 목록에서 나 오면 타이머가 시작되기를 원합니다.
마우스가 목록에 들어가면 타이머가 계속 실행되고 있으면 타이머를 중지하고 싶습니다.
마우스가 목록을 다시 벗어나면 같은 타이머가 다시 시작되기를 원합니다.
public void waitReminderList(int status) {
Timer timer = new Timer(10000, new ActionListener() {
public void actionPerformed(ActionEvent evt) {
reminderList.clearSelection();
dismissReminder.setEnabled(false);
}
});
if (status == 0) {
if (!reminderList.isSelectionEmpty()) {
timer.setRepeats(false);
timer.restart();
timer.start();
}
} else if (status == 1) {
if (!reminderList.isSelectionEmpty()) {
timer.stop();
}
}
private void reminderListMouseExited(java.awt.event.MouseEvent evt) {
waitReminderList(0);
}
private void reminderListMouseEntered(java.awt.event.MouseEvent evt) {
waitReminderList(1);
}
문제는 : 타이머가 중지하거나 다시 시작하거나 시작 후 아무것도 할 수 있지만 내가 그것을 할 필요가 없습니다.
문제점에 대한 내 해결책은 int가 있어야하고 타이머가 int의 값에 의해 원하는 것을 제어 할 수 있습니다. 하지만 작동하지 않았어 타이머가 멈추지 않아 ...
그래서 내가 뭘 잘못하고 있니?
나는 이와 같은 다른 질문이 있다는 것을 알고있다. 그러나 나는 아직 자바에 대해 상당히 익숙하지 않으며 주어진 답을 이해하지 못한다.
고맙습니다.
if-blocks 안에'System.out.println()'과 함께 디버그 출력을 추가해 보았습니다. 어떤 일을 할 때 어떤 코드에 도달했는지 보셨습니까? –
나는 그것을했다. 그러나 나는 이것을 게시했을 때 그들을 데리고 나왔다. 그들은 나를 도와주지 않았고, 나는 if 문이 작동하는 것을 보았다. 그러나 제안에 감사드립니다! –