我有一个问题时试图添加一个 PApplet 为体,它变成了一个空窗口,当它应该只是渲染的 PApplet.I.e。的 PApplet 工作本身,但不是在他的窗口。

我认为,刚刚加入的 PApplet 进入框架应该最初做的伎俩,使用他的教程中的代码食。显然,它不是那么容易。这是我的代码在哪里 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();
}

我失去了一些东西?

有帮助吗?

解决方案

我已经对如何与在Eclipse SWT熔合处理这个小指南: http://christian.liljedahl.dk/guides/processing-and-swt -in-蚀

我希望这能解决它。

我的“特技”是具有用于加工东西一个窗口,并在它自己的线程的UI一个单独的窗口。

其他提示

我认为,所有你缺少的是pApplet.init(); 请参阅类的文档: HTTP://dev.processing .ORG /参考/型芯/ javadoc的/处理/核心/ PApplet.html

我认为有一个替代的方式来实现这一点。 使用Swing组件作为一个适配器,它喜欢: 添加PApplet成一个JComponent像的JInternalFrame,则嵌入此JComponent到SWT复合。

我做的一些做法,并能正常工作..

也是我在博客中对这个话题的一些总结: http://blog.csdn.net/godoorsun/article/details/6747589

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

注:这只适用的处理 2.2.11 而不用 3+2

在行动代码,有两个失踪的发言:

  • 作为 user176840 所说的,它是必要的电话 pApplet.init() 开幕前的外壳
  • 此外,设置一个 Layout 壳喜欢 FillLayout, GridLayout, 等等,因此喜欢的东西 shell.setLayout(new FillLayout())

基本的工作code:

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 在我的情况下,我想嵌入程序进行基于他项目,所以我只能利用最后的(并且只有)处理后的版本可供2.X系列 pom.xml:

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

2 因为处理3是不兼容,可以发现 在这里,在这里,, ,基本上是一个主要重组的代码。我试图嵌入处理帆布进入他应用程序的失败。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top