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. ??
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. ??
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.
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.
Welche Art von Code/Ansätzen haben Sie bereits erforscht und/oder versucht? – Castaglia