将处理3嵌入到swing中

Coo*_*ube 5 java embed processing integration swing

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

有没有将 Processing 3 草图嵌入 Swing 中的方法,如果我可以在没有 PDE 的单独窗口中打开草图就足够了。

Kev*_*man 4

您可以通过扩展 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);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,如果您想获取底层组件,则必须根据您使用的渲染器编写代码。以下是使用标准渲染器的方法:

PSurfaceAWT awtSurface = (PSurfaceAWT)mp.surface;
PSurfaceAWT.SmoothCanvas smoothCanvas = (PSurfaceAWT.SmoothCanvas)awtSurface.getNative();
Run Code Online (Sandbox Code Playgroud)

获得 后SmoothCanvas,您可以将其从框架中删除并将其添加到您的框架中。