Этот вопрос касается Frames, Java и Processing.
Эти вопросы звучат довольно запутанно, но на самом деле это не так. Я постараюсь сделать это с минимальным минимумом. Я создаю маленький шарик в лабиринте, чтобы получить голову вокруг физики и рендеринга. Это был хороший опыт, но я ударил немного кирпичной стены. 
Общий макет, который я решил, состоял в том, чтобы содержать PApplets в рамке AWT и закрыть рамку. Причина этого в том, что мне сказали, что вам нужно иметь только экземпляр Паплета за раз.
 PApplet является классом Applet в Processing, библиотеке рендеринга.
У меня есть 3 класса, включая основной
public class Menu extends PApplet
{
//images and buttons 
PImage background, playbtn1, playbtn2, hsbtn1, hsbtn2, abbtn1, abbtn2, exbtn1,     exbtn2;
FBox pBtn, hBtn, eBtn;
FWorld menu;
//simple constructor
public Menu()
{
}
public void setup()
{
    size(600, 400);
    smooth();
    Fisica.init(this);
    menu = new FWorld();
    //loading and placing images
    background = loadImage("MenuAlt.jpg");
    System.out.println(background);
    playbtn1 = loadImage("play1.gif");
    playbtn2 = loadImage("play2.gif");
    hsbtn1 = loadImage("high1.gif");
    hsbtn2 = loadImage("high2.gif");
    exbtn1 = loadImage("exit1.gif");
    exbtn2 = loadImage("exit2.gif");
    //loading and placing buttons
    pBtn = new FBox(120, 150);
    pBtn.setPosition(135, 215);
    pBtn.setDrawable(false);
    hBtn = new FBox(120, 150);
    hBtn.setPosition(295, 215);
    hBtn.setDrawable(false);
    eBtn = new FBox(120, 150);
    eBtn.setPosition(455, 215);
    eBtn.setDrawable(false);
    //add item to world
    menu.add(pBtn);
    menu.add(hBtn);
    menu.add(eBtn);
}
public void draw()
{
    image(background, 0, 0);
    image(playbtn1, 80, 140);
    image(hsbtn1, 237, 135);
    image(exbtn1, 400, 140);
    mouseOver();
    menu.draw();
}
//close this frame an open a new level, high score or exit
//depending on what the use clicks
public void mousePressed()
{
    FBody pressed = menu.getBody(mouseX, mouseY);
    if (pressed == pBtn)
    {
        System.out.println("play game");
        this.getParent().getParent().getParent().getParent().setVisible(false);
        ExampleFrame x = new ExampleFrame(new Level("level1.txt"));
        x.setLocation(this.getParent().getParent().getParent().getParent().getLocation());
    }
    if (pressed == hBtn)
    {
        System.out.println("high scores");
        this.getParent().getParent().getParent().getParent().setVisible(false);
        /* these are just for finding the parent
 System.out.println(this.getName());
 System.out.println(this.getParent().getName());
 System.out.println(this.getParent().getParent().getName());
 System.out.println(this.getParent().getParent().getParent().getName());
 System.out.println(this.getParent().getParent().getParent().getParent().getName());
         */
        ExampleFrame x = new ExampleFrame(new HighScores()); //for testing, you can change this to new menu()
        x.setLocation(this.getParent().getParent().getParent().getParent().getLocation());
    }
    if (pressed == eBtn)
    {
        System.out.println("exit");
        System.exit(0);
    }
}
exampleFrame class
public class ExampleFrame extends JFrame
{
    PApplet app;
    public ExampleFrame(PApplet emApp)
    {
        super("Ball Maze Game");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocation(200, 200);
        app = emApp;
        setSize(615,438);
        setVisible(true);
        setLayout(new BorderLayout());
        add(app, BorderLayout.CENTER);
        app.init();
    }
}
основной
public class Main
{
    public static void main(String[] args) 
    {
        ExampleFrame x = new ExampleFrame(new Menu());
    }
}
Что должно произойти, когда mousePressed == ebtn - все материалы в Раде будут удалены, и будет загружен экран Highscores. Рекорды почти такие же, как меню. Нет необходимости отправлять код, поскольку этого достаточно.
Второй класс - это тот, который действует как кадр и содержит PApplet
В нижней строке, есть ли у кого-нибудь идеи, как вызвать методы Frame из PApplet или другим способом удалить все содержимое PApplets и загрузить еще один PApplet?


