如何将PApplet
嵌入JApplet
?
我想将其添加到JPanel
内的applet
,但我无法。
如果你们中的任何人知道如何做到这一点。 ??
答案 0 :(得分:0)
从处理3开始,您无法再执行此操作。 PApplet
不再延伸Applet
,因此无法将其视为组件。
对于95%的用户,这没关系。无论如何,小程序已经死了,所以你真的不应该使用它们。如果可能的话,您应该尝试使用Processing.js进行部署。
如果您需要从Java代码执行Processing sketch,那么您应该使用PApplet.main("YourSketchNameHere");
函数来启动它。处理将为您处理窗口。
如果您确实需要将PApplet
视为一个组件,那么您将不得不通过其PSurface
。 PSurface
类包含getNative()
函数,该函数返回可被视为组件的对象。但对于大多数处理用户来说,这太过分了。
答案 1 :(得分: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。