Я пишу функцию для добавления моей игры 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)
.И извините за мой плохой английский.