Каждый раз, когда я запускаю свое приложение, это монета, независимо от того, будет ли KeyListener работать.Если это работает, у него не будет проблем в любой момент после этого, но если он не будет работать в начале приложения, он никогда не будет работать, пока программа не закроется и не запустится снова.
public ThreeDimChessRunner() {
record = new ArrayList<Integer>();
winner = Player.NONE;
game = new ThreeDimBoard(0);
addMouseListener(this);
addKeyListener(this);
setFocusable(true);
tm.start();
screenWidth = screenSize.width;
screenHeight = screenSize.height;
}
public static void main(String[] args){
screenSize = Toolkit.getDefaultToolkit().getScreenSize();
ThreeDimChessRunner p = new ThreeDimChessRunner();
JFrame frame = new JFrame("3D Chess");
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(p);
}
Класс ThreeDimChessRunner расширяет JPanel
и реализует KeyListener
, ActionListener
и MouseInputListener
.
tm является Timer
объектом
screenSize являетсяDimension
объект