2012-01-19 88 views
1

我剛剛開始在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); 
} 

}

我又試圖取代的JFrameawt.Frame櫃面有Swing和AWT(這我帶領相信之間的一些穩定性問題在這種情況下,PApplet是建立在)。

雖然令人驚訝的是,但從來沒有任何滯後與幀,這有解決問題。但是,我一直使用JFrame,任何使用容器等的GUI工作,我一直使用Swing,所以我想知道是否有人可以分享他們的知識並解釋發生了什麼,以及是否可以修復?這個問題。

謝謝。

回答

0

不建議將處理草圖與Swing結合使用。不可預知的行爲已經被報道了很多次。