将处理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
后,您可以将其从框架中删除并添加到您的框架中。
我正在尝试将 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
后,您可以将其从框架中删除并添加到您的框架中。