Компоненты в JPanel не удаляются после actionPerformed - PullRequest
0 голосов
/ 15 июня 2019

Я пишу функцию для добавления моей игры lwjgl в JPanel, игра lwjgl построена с Canvas.Поэтому после того, как я нажал кнопку, которая регистрируется в этой функции, кадр застрял, но я слышу звук из моей игры lwjgl.Холст вообще не показывался.

Функция работает хорошо, когда я закомментирую инициализатор для игры lwjgl.Я пытался протестировать игру lwjgl в другой main(), холст отлично показал себя внутри JPanel.

Это функция:

public void change2Game() {
    Canvas canvas = new Canvas();

    removeAll();
    add(canvas);
    canvas.setVisible(true);
    canvas.setPreferredSize(new Dimension(1000, 600));
    Game game = new Game(canvas);

    revalidate();
    repaint();
}

И это то, что я тестируюв другом main():

public static void main(String[] args) {

    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    Canvas canvas = new Canvas();

    frame.add(panel);
    panel.removeAll();

    panel.add(canvas);
    canvas.setVisible(true);
    canvas.setPreferredSize(new Dimension(1300, 700));
    frame.setVisible(true);
    frame.setSize(1300, 700);
    frame.setTitle("test");

    Game game = new Game(canvas);

    frame.revalidate();
    frame.repaint();

    frame.pack();
    //System.exit(0);
}

Мне интересно, почему API removeAll() не работает из-за строки Game game = new Game(canvas).И извините за мой плохой английский.

...