用于处理的 ControlP5 库中的 .setBounds(int, int, int, int) 问题

Problem with .setBounds(int, int, int, int) in ControlP5 library for Processing

我目前正在为 Eclipse 上的处理编辑库 ControlP5。问题是 ControlWindow.java file:

总是出现意外错误

The method .setBounds(int, int, int, int) is undefined for PApplet.

错误发生的方法代码如下:

public ControlWindow setUndecorated( boolean theFlag ) {
    if ( theFlag != isUndecorated( ) ) {
        isUndecorated = theFlag;
        _myApplet.frame.removeNotify( );
        _myApplet.frame.setUndecorated( isUndecorated );
        _myApplet.setSize( _myApplet.width , _myApplet.height );
        _myApplet.setBounds( 0 , 0 , _myApplet.width , _myApplet.height );
        _myApplet.frame.setSize( _myApplet.width , _myApplet.height );
        _myApplet.frame.addNotify( );
    }
    return this;
}

错误意味着 PApplet class 不包含此方法,如果您使用的是 Processing 3,则为真。

setBounds()是Processing 2中找到的方法; PApplet class 用于从 java.applet 继承此方法,它用于 extend 的 class。在处理 3 中,PApplet 离开了 Java 小程序 class,但是 controlp5 源代码是旧的并且是用处理 2 而不是 3 构建的。


The setBounds() method specifies the size of the frame, and the location of the upper left corner.

... 这是 setSize()setPosition() 方法所涵盖的功能,现存于 Processing 3 中(事实上,发现错误的 setUndecorated() 方法已经调用 setSize()).

因此,删除使库与 Processing 3 兼容的行,或者改用 Processing 2。