0

我在尝试将 a 添加PApplet到 SWT 时遇到问题,当它应该只渲染PApplet. 即PApplet作品本身,但不在 SWT 窗口中。

我认为PApplet在 Eclipse 中使用 SWT 教程代码,最初只需将其添加到框架中就可以解决问题。显然这并不容易。这是我的代码,MyPApplet自定义代码在哪里PApplet

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    Composite composite = new Composite(shell, SWT.EMBEDDED | SWT.NO_BACKGROUND);
    Frame frame = SWT_AWT.new_Frame(composite);
    PApplet pApplet = new MyPApplet();
    frame.add(pApplet);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) display.sleep();
    }
    display.dispose();
}

我错过了什么吗?

4

4 回答 4

3

我制作了这个关于如何在 Eclipse 中将处理与 SWT 融合的小指南:http: //christian.liljedahl.dk/guides/processing-and-swt-in-eclipse

我希望这可以为您解决。

我的“技巧”是有一个用于处理内容的窗口,以及一个在其自己的线程中带有 UI 的单独窗口。

于 2010-12-26T15:07:42.670 回答
2

我认为你所缺少的只是 pApplet.init(); 请参阅该类的文档:http: //dev.processing.org/reference/core/javadoc/processing/core/PApplet.html

于 2010-01-06T18:32:08.633 回答
1

我认为有另一种方法可以实现这一目标。使用 Swing 组件作为适配器,它喜欢:将 PApplet 添加到 JComponent 中,例如 JInternalFrame ,然后将此 JComponent 嵌入到 SWT 组合中。

我已经对此进行了一些实践,并且效果很好..

我还写了一些关于这个主题的总结:http: //blog.csdn.net/godoorsun/article/details/6747589

(顺便说一句,这篇文章是用中文写的:(,也许你可以通过谷歌翻译阅读,但那篇文章的示例代码很容易理解)

于 2011-09-04T11:12:29.593 回答
0

注意:这仅适用于处理2.2.11,不适用于3+2

在 OPs 代码中,缺少两个语句:

  • 正如user176840pApplet.init()所说,在打开shell之前需要调用
  • 此外,将 a 设置Layout为 shell 之类FillLayout的 ,GridLayout等,例如shell.setLayout(new FillLayout())

基本工作代码:

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    Composite composite = new Composite(shell, SWT.EMBEDDED | SWT.NO_BACKGROUND);
    Frame frame = SWT_AWT.new_Frame(composite);
    PApplet pApplet = new MyPApplet();
    frame.add(pApplet);
    pApplet.init();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) display.sleep();
    }
    display.dispose();
}

1在我的情况下,我试图将一个小程序嵌入到基于 Maven 的 SWT 项目中,所以我只能使用 2.X 系列可用的最后一个(也是唯一一个)处理版本pom.xml

    <dependency>
        <groupId>org.processing</groupId>
        <artifactId>core</artifactId>
        <version>2.2.1</version>
    </dependency>

2处理3不兼容的原因可以在这里这里找到,基本上是代码的重大重组。我试图将处理画布嵌入到 SWT 应用程序中,但没有成功。

于 2018-04-13T10:50:14.557 回答