java - 处理 - draw() 在调用方法返回后运行

标签 java processing dropwizard

编辑:我创建了一个最小的程序来复制此问题 here

<小时/>

我有一个端点,它在 Display 的子类中调用 draw(node) ,然后调用 redraw() 。然后它将框架保存到文件中,然后将其返回以在浏览器中显示。

由于某种原因,端点在重新绘制帧之前返回响应,这导致第一次调用是空白背景,并且每个后续端点调用都是前一帧。

我做了一些调试,发现 draw() 代码仅在端点方法返回响应后执行,而不是我期望它作为方法调用的一部分执行的位置。

我已经尝试了一些带有 while 循环的 finished 变量来阻止它,还有一些线程正在 hibernate ,但到目前为止没有任何效果。

我正在使用 DropWizard 框架和处理库 v3.3.7

@Override
public void settings() {
    size(S_WIDTH, S_HEIGHT);
    noLoop();
}

@Override
public void draw() {
    if (Objects.nonNull(currNode)) { //currNode starts as null
        // Some drawing stuff
    }
}

public void draw(Node node) {
    this.currNode = node;
    redraw();
}

最佳答案

redraw() 启动一个新线程,因此将其锁定同步到主线程解决了问题。

关于java - 处理 - draw() 在调用方法返回后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818002/

相关文章:

java - @Context 注入(inject)在 Je​​rsey ContainerRequestFilter (Dropwizard) 中不起作用

java - 在 Java 中查询分隔文本文件的最佳工具是什么?

java - Google App Engine : Different behavior locally vs deployed, 错误:无法在单个事务中对多个实体组进行操作

java - 如何在碰撞时仅运行一次功能?

processing - procontroll 库无法在 Windows 7 64 位上运行

java - 卡牌游戏与处理的 war

java - 在 Dropwizard 中以编程方式运行迁移

eclipse - 如何让 Eclipse 在调试时正常关闭 dropwizard?

java - 来自服务器 : "Host ' 192. 168.169.98 的消息不允许连接到此 MySQL 服务器

java - 静态泛型方法的返回类型可以取决于其参数吗?