我试图将Processing 3集成到一个swing应用程序中,但是由于PApplet不再扩展Applet,所以我不能立即将其添加为组件。

无论如何,将Processing 3草图嵌入到Swing中,只要我能在没有PDE的单独窗口中打开草图就足够了。

最佳答案

您可以通过扩展PApplet从Java运行草图,然后使用runSketch()函数运行该PApplet。它看起来像这样:

String[] args = {"MyPapplet "};
MyPapplet mp = new MyPapplet ();
PApplet.runSketch(args, mp);

public class MyPapplet extends PApplet {

  public void settings() {
    size(200, 100);
  }
  public void draw() {
    background(255);
    fill(0);
    ellipse(100, 50, 10, 10);
  }
}

然后,如果要使用基础组件,则必须编写代码,具体取决于所使用的渲染器。使用标准渲染器的方法如下:
PSurfaceAWT awtSurface = (PSurfaceAWT)mp.surface;
PSurfaceAWT.SmoothCanvas smoothCanvas = (PSurfaceAWT.SmoothCanvas)awtSurface.getNative();

一旦有了SmoothCanvas,就可以将其从框架中删除并将其添加到您的框架中。

08-04 20:51