Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理过程中的不可预测行为_Java_Applet_Jframe_Processing - Fatal编程技术网

Java 处理过程中的不可预测行为

Java 处理过程中的不可预测行为,java,applet,jframe,processing,Java,Applet,Jframe,Processing,我刚刚开始在Processing中创建一个应用程序,当我使用BorderLayout.CENTER将PApplet对象放置到JFrame中时,会出现不可预测的行为 PApplet的宽度比JFrame的宽度和高度小100。 在某些情况下,当我单击“运行”时,程序会填满屏幕并运行得非常平稳,但在其他运行中,PApplet从左上角开始,在屏幕底部和左侧的100处留下一个间隙,并且相当滞后 老实说,我不知道发生了什么事 这是顺利运行的结果: 这是不可预测的一个: 以下是我正在使用的代码: 丘疹亚类

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

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

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

这是顺利运行的结果:

这是不可预测的一个:

以下是我正在使用的代码:

丘疹亚类 查看器类 }

然后我试着用awt.Frame替换JFrame,以防Swing和awt之间出现一些稳定性问题(我相信PApplet就是基于此构建的)

但令人惊讶的是,框架从来没有任何滞后,这在某种程度上解决了问题。但是,我一直在使用JFrame,任何GUI处理容器的工作,等等,我一直在使用Swing,所以我想知道是否有人可以分享他们的知识并解释发生了什么,以及是否有可能修复?这个问题


谢谢。

不建议将加工草图与Swing结合使用。不可预测的行为已经被报道了很多次

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);
}