我尝试在屏幕底部制作一个状态栏,但是窗口不能小于100像素。我正在处理3.0.1。
我使用以下代码
void setup() {
surface.setResizable(true);
surface.setSize(300, 20);
surface.setLocation(displayWidth-300, displayHeight-50);
}
void draw() {
background(128);
}
有任何想法吗??
谢谢大家
!!
最佳答案
如果删除surface.setResizable(true);
语句,则可以看到 Canvas 是300x20,但窗口不是:
Processing 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中使用以确保这些最小窗口尺寸。
尝试访问Surface的 Canvas (
println(surface.getNative());
)时,我可以将其列为processing.awt.PSurfaceAWT$SmoothCanvas
,并且可以看到SmoothCanvas class with a getFrame() method看起来很有希望,但是似乎无法访问(即使它是公共(public)类的公共(public)方法)。因此,默认情况下,此时,我要说不能将窗口的大小调整为小于Processing 3.x中的128x128。
如果必须使用Processing 3.x和较小的窗口,则可以自己调整源代码并重新编译核心库,但是稍后在具有多个Processing项目和多个版本的Processing核心库的情况下,这可能会给您带来麻烦。我不建议您正常修改核心库。
如果您可以将Processing 2.x用于项目,则可以使窗口大小小于100像素:
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);
}
关于processing - 如何使窗口小于100像素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33849490/