Как вставить PApplet
в JApplet
? Я хотел добавить его в JPanel
внутри applet
, но не смог.Вставить PApplet intp JApplet
Если кто-то из вас знает, как я могу это сделать. ??
Как вставить PApplet
в JApplet
? Я хотел добавить его в JPanel
внутри applet
, но не смог.Вставить PApplet intp JApplet
Если кто-то из вас знает, как я могу это сделать. ??
Начиная с обработки 3, вы больше не можете этого делать. PApplet
больше не расширяет Applet
, поэтому его нельзя рассматривать как компонент.
Для 95% пользователей это нормально. Апплеты все равно мертвы, поэтому вы действительно не должны их использовать. Если это вообще возможно, попробуйте выполнить развертывание с помощью Process.js.
Если вам нужно выполнить эскиз обработки из кода Java, вы должны использовать функцию PApplet.main("YourSketchNameHere");
для ее запуска. Обработка будет заботиться о окне для вас.
Если вам действительно нужно обработать PApplet
в качестве компонента, то вам нужно будет пройти через его PSurface
. Класс PSurface
содержит функцию getNative()
, которая возвращает объект, который можно рассматривать как компонент. Но это слишком много для большинства пользователей.
Перед обработкой 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.
Какой код/подходы вы исследовали и/или попытались уже? – Castaglia