0

我正在为 3D 图编写代码,并且我希望在用户按下 JButton 时更新场景图。我正在尝试使用 Behavior 类,但找不到任何有关使用摇摆事件唤醒行为的信息。我真的很感激任何帮助!谢谢!!

4

1 回答 1

0

您可以使用包含 Runnables 队列的特殊行为对象。然后,您可以将可运行文件发布到行为并唤醒它。您必须理清正确的同步,以便只有在队列中没有更多命令时行为才会进入睡眠状态,但它应该可以工作。

将类变成单例,以便能够在 BehaviorScheduler 中运行 Runnable,类似于 SwingUtilities.invokeLater() 方法。

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);
    }
}
于 2012-01-12T17:35:56.100 回答