2016-04-13 11 views
-3

Wie kann ich eine PApplet in eine JApplet einbetten? Ich wollte es zu einer JPanel innerhalb der applet hinzufügen, aber ich konnte nicht.PApplet integrieren intp JApplet

Wenn einer von euch weiß, wie ich das tun kann. ??

+0

Welche Art von Code/Ansätzen haben Sie bereits erforscht und/oder versucht? – Castaglia

Antwort

0

Ab Verarbeitung 3 können Sie dies nicht mehr tun. PApplet verlängert sich nicht mehr Applet, so dass es nicht als eine Komponente behandelt werden kann.

Für 95% der Benutzer ist das in Ordnung. Applets sind sowieso tot, also solltest du sie wirklich nicht benutzen. Wenn möglich, sollten Sie versuchen, mit Processing.js bereitzustellen.

Wenn Sie eine Verarbeitungsskizze aus Java-Code ausführen müssen, sollten Sie die Funktion PApplet.main("YourSketchNameHere"); verwenden, um sie zu starten. Die Bearbeitung wird sich um das Fenster kümmern.

Wenn Sie wirklich eine PApplet als eine Komponente behandeln müssen, dann müssen Sie durch seine PSurface gehen. Die Klasse PSurface enthält eine getNative()-Funktion, die ein Objekt zurückgibt, das als Komponente behandelt werden kann. Aber das ist für die meisten Processing-Benutzer übertrieben.

0

Vor Verarbeitung 3 sollte dieser Code für Sie arbeiten, wie @Kevin erklärt hat. Also, wenn Sie Ihre Frage ein Legacy-Code gerichtet ist hier zu verstehen ist, was Sie wissen müssen:

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); 
    } 
} 

Um dies zu umgehen, müssen Sie PSurface getNative() Funktion verwenden. Bitte beachten Sie die example and discussion given on this link.