将处理3嵌入到swing中

Embed processing 3 into swing

我正在尝试将 Processing 3 集成到一个 swing 应用程序中,但是因为 PApplet 不再扩展 Applet,我不能立即将它添加为一个组件。

有没有办法将 Processing 3 草图嵌入到 Swing 中,如果我可以在没有 PDE 的情况下在单独的 window 中打开草图就足够了。

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

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 后,您可以将其从框架中删除并添加到您的框架中。