2016-04-13 7 views
-3

PAppletJAppletに埋め込むにはどうしたらいいですか? appletJPanelに追加しましたが、できませんでした。Embpped PApplet intp JApplet

私がこれをどうやってできるか知っていれば誰でも。 ??

+0

すでに調査した/試みたコード/アプローチの種類はありますか? – Castaglia

答えて

0

処理3では、これ以上行うことはできません。 PAppletはもはやAppletまで拡張されないため、コンポーネントとして扱うことはできません。

ユーザーの95%にとって、これは問題ありません。とにかくアプレットは死んでいるので、実際には使用しないでください。可能であれば、Processing.jsでデプロイしてください。

JavaコードからProcessingスケッチを実行する必要がある場合は、PApplet.main("YourSketchNameHere");関数を使用して起動する必要があります。処理がウィンドウを処理します。

実際にPAppletをコンポーネントとして扱う必要がある場合は、PSurfaceを経由する必要があります。 PSurfaceクラスには、コンポーネントとして扱うことができるオブジェクトを返す関数getNative()が含まれています。しかし、それはほとんどの処理ユーザーにとっては不幸です。

0

処理3より前に、@Kevinが説明したように、このコードが有効でした。あなたの質問がここにレガシーコードを理解することに向けられているのであれば、あなたが知っておく必要がありますものです:

import javax.swing.JFrame; 
import javax.swing.JPanel; 

class MyPApplet extends PApplet implements ActionListener{ 
    @Override 
    public void setup() { 
     super.setup(); 
     // setup 
    } 

    @Override 
    public void draw() { 
     // my draw code 
    } 
} 

public class PAppletDemo { 
    public static void main(String[] args) { 
     final JFrame frame = new JFrame("PApplet in Java Application"); 
      JPanel panel = new JPanel(); 

      //create an instance of your processing applet 
      final MyPApplet applet = new MyPApplet(); 

      applet.init(); 
      panel.add(applet); // From processing 3, this will give you error that applet is not a Component 

     frame.add(panel); 
     frame.setSize(applet.getSize().width, applet.getSize().height +200); 
     frame.setVisible(true); 
    } 
} 

これを回避するには、あなたがPSurface getNative()関数を使用する必要があります。 example and discussion given on this linkを参照してください。

関連する問題