Я изучаю, как сделать игру Pacman, поэтому я сделал JPanel и добавил на нее keyListener. Но я также хотел показать высокий балл и текущий балл, поэтому я добавил JFrame и поставил JPanel. Теперь игра не будет работать, хотя изображения загружаются. Я пробовал поиск самостоятельно, но это сложно, потому что я не знаю, как точно описать проблему.Игра становится невосприимчивой после добавления в JFrame
Вот код:
EDIT: Хорошо, так что я понятия не имею, почему, но когда я ставлю создание графического интерфейса в конце материала, а не игра снова работает. Может быть, это фокус, о котором вы, ребята, говорили? В любом случае, большое спасибо за вашу помощь!
/**
* This class creates a PacMan GUI that extends the JFrame class. It has a Board (JPanel) and
* includes a constructor method that sets up the frame and adds a key listener to the board.
*/
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial") //takes away yellow lines
public class PacManGUI extends JFrame {
// Board panel
private Board board = new Board();
JLabel currentScoreLabel = new JLabel("Score: " + Board.score);
JLabel highScoreLabel = new JLabel("High Score: " + Board.highScore + " by " + Board.initials);
/**
* PacMan GUI constructor
* @param selectedTheme
*/
public PacManGUI(String selectedTheme) {
//1. Setup the GUI
setSize(620, 675);
setTitle("PacMan");
getContentPane().setBackground(Color.BLACK);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //removes the java icons that pop up when running
add(currentScoreLabel, BorderLayout.PAGE_START);
currentScoreLabel.setForeground(Color.WHITE);
add(highScoreLabel, BorderLayout.PAGE_END);
highScoreLabel.setForeground(Color.WHITE);
//2. Listen for events on the board and add the board to the GUI
add(board);
addKeyListener(board);
board.setFocusable(true);
//3. Make GUI visible
setVisible(true);
}
}
где находится остальная часть вашей программы? – gpasch
Я не был уверен, должен ли я опубликовать всю свою программу, поскольку в ней есть несколько классов. У меня возникла такая проблема, когда я подключил к JFrame плату, поэтому я только разместил этот класс. – CreamLover123
* «Я не был уверен, должен ли я опубликовать всю мою программу», * * Нет, но также и не скомпилированные фрагменты кода. Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). * ", поэтому я добавил JFrame и поставил JPanel там. Теперь игра не будет запускаться" * Где вы ее видели раньше? –