2015-11-21 7 views
5

私は画面の下部にステータスバーを作ろうとしますが、ウィンドウを100ピクセル以下にすることはできません。私はProcessing 3.0.1に取り組んでいます。ウィンドウを100ピクセルより小さくするには

は、私は次のコード

void setup() { 
     surface.setResizable(true); 
     surface.setSize(300, 20); 
     surface.setLocation(displayWidth-300, displayHeight-50); 
    } 

void draw() { 
    background(128); 
} 

任意のアイデアを使用して??

ありがとうございました。

J!

答えて

4

あなたがsurface.setResizable(true);ステートメントを削除する場合は、キャンバスは300x20ですが、窓がないことがわかります。

Processing 3.0 sketch window

処理3.0は、以前に頼っウィンドウコードを、リファクタリングを含むchangesをたくさん持っていますJavaのAWTパッケージで現在のソースコードを通って行く

、あなたが見ることができます:

static public final int MIN_WINDOW_WIDTH = 128; 
static public final int MIN_WINDOW_HEIGHT = 128; 

PSurface.java line 34 で定義されており、これらの最小ウィンドウの大きさを確保するためにアウト PSurfaceAWT.javaを介して使用します。私はそれが processing.awt.PSurfaceAWT$SmoothCanvasとしてリストされていたり、(それが公共のクラスのpublicメソッドですが)私は有望に見える SmoothCanvas class with a getFrame() methodを見ることができますが、それはアクセス可能であるようには見えない表面のキャンバス( println(surface.getNative());)にアクセスしようとすると

デフォルトでは、この時点では、Processing 3.xの128x128より小さくなるようにウィンドウのサイズを変更するといいです。

処理3.x以下のウィンドウが必要な場合は、ソースコードを自分で微調整してコアライブラリを再コンパイルすることは可能かもしれませんが、後で複数のバージョンのProcessingコアとしょうかん。私は、コアライブラリを通常どおりに修正することはお勧めしません。

あなたはウィンドウサイズにより小さい100個のピクセルを作り、プロジェクトの処理2.xのを使用することができる場合に達成可能である:

PApplet resized window

import java.awt.Dimension; 

int w = 300; 
int h = 20; 
int appBarHeight = 23;//this is on OSX, on Windows/Linux this may be different 

void setup() { 
    size(w, h); 
    frame.setResizable(true); 
} 

void draw() { 
    if (frame.getHeight() != h+appBarHeight){//wait for Processing to finish setting up it's window dimensions (including minimum window dimensions) 
    frame.setSize(w,h+appBarHeight);//set your dimensions 
    } 
    background(128); 
} 
+0

ありがとうございました!私はあなたと同じ考えを持っていました。最初にコアライブラリを再構築する予定でしたが、今はバージョン2.xに行く方が良いと思います。バージョン3.xでframe.setUndecorated(true)を思いついて、ウィンドウ枠なしでパネルを作るという別の問題があります。 – Johntor

+1

既に表示可能であるため( '' 'IllegalComponentStateException'''をスローします)、' 'setUndecorated(true)' 'を既存のProcessingフレームに使用することはできませんが、独自の' '' java.awt.Frame''フレームインスタンスで '' setUndecorate(true) '' 'を実行し、PAppletコンポーネントを(Processingの既存フレームから)追加します。詳細については、[この回答]を見てください(http://stackoverflow.com/questions/23260640/java-processing-2-0-using-eclipse-switching-from-window-to-fullscreen-and-ba/)。 23297157#23297157)。 –

+0

ありがとうございます!私はそれを念頭に置いています! – Johntor

関連する問題