質問

を追加しようとすると問題が発生します 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();
}

何かが足りないのでしょうか?

役に立ちましたか?

解決

私は、EclipseのSWTで処理を融合する方法については、この小さなガイドを行っています。 http://christian.liljedahl.dk/guides/processing-and-swt -in-日食

私は、これはあなたのためにそれを解決したいと考えています。

私の「トリック」は、一つの処理のもののためのウィンドウ、および独自のスレッドでUIを持つ別々のウィンドウを持つことです。

他のヒント

私はそれを達成するための別の方法があると思います。 好きなアダプタとしてSwingコンポーネントを使用します: JInternalFrameのようなJComponentのにPAppletを追加し、その後、SWTコンポジットにこのJComponentを埋め込みます。

私はそれにいくつかのプラクティスを作りました、それが正常に動作します..

とも私はこのトピックに関するいくつかの要約をブログに書いています: http://blog.csdn.net/godoorsun/article/details/6747589する

(ところで、この記事は、中国:(で書かれている、多分あなたはGoogleの翻訳を通してそれを読み取ることができますが、その記事のサンプルコードは、理解しやすいです)。

注記:これは処理でのみ機能します 2.2.11 そしてそうではありません 3+2

OP コードには、次の 2 つのステートメントが欠落しています。

  • として ユーザー176840 に電話する必要があると言いました。 pApplet.init() 殻を開ける前に
  • また、 Layout のようにシェルに 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 アプリケーションに処理キャンバスを埋め込もうとしましたが、失敗しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top