2016-08-23 35 views
0

所以Processing曾經有一個「框架」類,它允許一些多功能的功能。我試圖讓PApplet窗口的位置在屏幕上,但沒有「框架」類,我似乎無法做到這一點。Java和Processing 3.0「框架」類已棄用,是否有替代方法?

老辦法:

int fX = frame.getX(); 
or 
int fX = frame.getLocationOnScreen().x; 

整個事情應該是動態的,所以設置在處理設置窗口中的位置()是不是一種選擇。

希望有人能幫助,

問候! B

回答

1

您可能最好只使用舊的frame變量。

對於大多數此類情況,您應該使用新的surface變量,該變量的類型爲PSurface。您可以查看PSurfacehere的來源。讀一讀,我們發現不幸的是,surface變量不能讓我們訪問幀的位置。

既然你無法從surface變量到達的位置,你必須去一個更深層次的原因得到本地組件(在默認情況下,SmoothCanvas其延伸的AWT Canvas)。我通過查看PSurfaceAWT的來源here來解決這個問題。

操作的代碼看起來有點毛,因爲你必須做一些鑄造:

import processing.awt.PSurfaceAWT; 
import processing.awt.PSurfaceAWT.SmoothCanvas; 

void setup(){ 
    size(200, 200); 
} 

void draw(){ 
    background(0); 

    int x = ((SmoothCanvas) ((PSurfaceAWT)surface).getNative()).getFrame().getX(); 
    text("x: " + x , 20, 20); 
} 
+0

它確實正是我想要的,謝謝!另外可悲的是,框架類的一些功能似乎不再起作用,所以這不會成爲一種選擇。 (像.getX(),只返回0) – Biggzlar

相關問題