0
3D 그래프 용 코드를 작성 중이며 사용자가 JButton을 누르면 장면 그래프가 업데이트되기를 원합니다. Behavior 클래스를 사용하려고하지만 swing 이벤트를 사용하여 동작을 깨우는 데 필요한 정보를 찾을 수 없습니다. 어떤 도움을 주셔서 감사합니다! 고맙습니다!!Swing 이벤트와 동작 클래스를 사용하는 방법?
3D 그래프 용 코드를 작성 중이며 사용자가 JButton을 누르면 장면 그래프가 업데이트되기를 원합니다. Behavior 클래스를 사용하려고하지만 swing 이벤트를 사용하여 동작을 깨우는 데 필요한 정보를 찾을 수 없습니다. 어떤 도움을 주셔서 감사합니다! 고맙습니다!!Swing 이벤트와 동작 클래스를 사용하는 방법?
Runnables 큐가 포함 된 특수한 비헤이비어 개체를 사용할 수 있습니다. 그런 다음 행동에 실행 파일을 게시하고 깨울 수 있습니다. 대기열에 더 이상 명령이 없을 때 동작이 잠자기 상태가되도록 올바른 동기화를 정렬해야하지만 작동해야합니다.
SwingUtilities.invokeLater() 메소드와 유사하게 Runnable을 BehaviorScheduler 내에서 실행할 수 있도록 클래스를 싱글 톤으로 만듭니다.
public class ThreadTransferBehavior extends Behavior {
private final static int POST_ID = 9997;
private final WakeupOnBehaviorPost m_wakeupPost = new WakeupOnBehaviorPost(this, POST_ID);
private final Stack<Runnable> commands;
public synchronized void processStimulus(Enumeration i) {
while(!commands.isEmpty()) commands.pop().run();
wakeupOn(m_wakeupPost);
}
public synchronized void queueCommand(Runnable r) {
commands.push(r);
postId(POST_ID);
}
}