gpt4 book ai didi

java - 处理中的不可预测行为

转载 作者:行者123 更新时间:2023-12-01 05:31:21 25 4
gpt4 key购买 nike

我刚刚开始在Processing 中创建一个应用程序,当我使用BorderLayout.CENTER 将PApplet 对象放入JFrame 中时,我遇到了不可预测的行为。

PApplet 的宽度比 JFrame 的宽度和高度小 100。在某些情况下,当我单击“运行”时,程序会填满屏幕并运行得非常流畅,但在其他运行中,PApplet 从左上角开始,并在屏幕底部和左侧留下 100 的间隙,而且相当滞后。

老实说,我不知道发生了什么。

这是顺利运行的结果:

Wanted behvaiour

这是不可预测的:

Unwanted behaviour

这是我正在使用的代码:

PApplet子类

public class JCanvas extends PApplet {

/**
* PApplet method - performs all setup actions
*/
public void setup(){
size(1400,900,P3D);
background(80);
}

/**
* PApplet method - All drawing occurs here
*/
public void draw(){
background(80);
pushMatrix();
translate(mouseX,mouseY, -199);
fill(220,0,0);
box(120,500,90);
popMatrix();
}
}

查看者类别

public final class EuroViewer {

private final static int WIDTH = 1500;
private final static int HEIGHT = 1000;
private final static boolean RESIZABLE = false;

public static void main(String[] arguments){
final JFrame frame = new JFrame("Eurographics PApplet");

JCanvas sketchCanvas = new JCanvas();
frame.add( sketchCanvas );

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(WIDTH, HEIGHT);
frame.setResizable(RESIZABLE);
frame.setLocationRelativeTo(null);

sketchCanvas.init();
frame.setVisible(true);
}

}

然后,我尝试将 JFrame 替换为 awt.Frame,以防 Swing 和 awt 之间存在一些稳定性问题(我相信 PApplet 是基于此构建的) )在这种特殊情况下。

令人惊讶的是,Frame 从来没有任何延迟,这已经解决了这个问题。但是,我一直使用 JFrame,任何与容器一起使用的 GUI 都使用 Swing,所以我想知道是否有人可以分享他们的知识并解释发生了什么,以及是否可以修复?这个问题。

谢谢。

最佳答案

不建议将处理草图与 Swing 结合使用。不可预测的行为已被多次报道。

关于java - 处理中的不可预测行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com