나는 모든 것을하려고하는 중 하나가 매우 바쁜 스레드를 가지고 있으며, 내 MouseMotionListener 속도를 늦추기 시작했습니다. 나는 빨리이 할 수있는 한 항상 실행의 확인하기 위해 다른 스레드에서 리스너를 넣어 것이라고 생각하지만, 곧 내가 만든로 : 나는 깨달았다 Java의 다른 스레드에 MouseMotionListener를 추가 할 수 있습니까?
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
public class MouseListenerThread extends Thread implements MouseMotionListener {
public void run(){
//Concurrency happens here
}
public void mouseDragged(MouseEvent e) {
// Do something
}
public void mouseMoved(MouseEvent e) {
// Do something else
}
}
이 나는 등이 다른 객체의 기능을 가질 수있는 동안 마우스 수신기, 나는 동시에 그것을 할 수 없었다. 듣기를 위해 실행 기능을 사용할 수있는 방법이 있습니까? 나는 청취자의 속도를 높이기위한 다른 해결책도 받아 들일 것이다.
감사합니다.
스윙에서 이벤트 발송 스레드에서 오랫동안 실행하지 않아야합니다. 매우 바쁜 스레드는 작성한 다른 스레드 여야합니다. 마우스 수신기는 이벤트 발송 스레드에서 호출되므로 두 스레드가 서로 간섭하지 않아야합니다. – sjr
'EDT'에 영향을주는 프로세스가 있다면, 그 기능을'SwingWorker'에 넣는 것을 고려해보십시오. 'MouseListeners'는'EDT'에서만 찾을 수 있습니다. – Reimeus
두 클래스를 바꾸고 모든 사업을 대체 스레드로 옮기고 모든 마우스의 위치를 청취하도록 하시겠습니까? – user1706538