2016-08-23 5 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変数から場所に取得することはできませんので、あなたはより深いレベルを行くと(AWT Canvasを拡張し、デフォルトの場合、SmoothCanvasネイティブコンポーネントを取得する必要があります。私は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

それ行いまさに私が欲しいもの、ありがとうございました!また、悲しいことに、フレームクラスに付属する関数のいくつかはもはや機能しないように見えるので、これはオプションではありません。 (0を返すだけの.getX()のように) – Biggzlar

関連する問題