将处理3嵌入到swing中

Posted

技术标签:

【中文标题】将处理3嵌入到swing中【英文标题】:Embed processing 3 into swing 【发布时间】:2016-01-11 03:40:49 【问题描述】:

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

是否有将处理 3 草图嵌入到 Swing 中,如果我可以在没有 PDE 的单独窗口中打开草图就足够了。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于将处理3嵌入到swing中的主要内容,如果未能解决你的问题,请参考以下文章

如何在Swing中嵌入浏览器

将处理 3 添加到 Jpanel

在 JFXPanel 中嵌入 JavaFX 阶段(Swing 嵌入)

Swing的步骤

Java Swing中键盘输入事件及处理

Java学习笔记7.2.1 事件处理 - Swing事件处理机制