У меня есть jframe, который добавляет jpanel1.
jpanel1 похож на Gameview. Если пользователь хочет сделать паузу, он может нажать esc и jpanel2 покажет. там он может нажать кнопку, чтобы вернуться на jpanel1.
Переменная Presser.value является состоянием просмотра.
Возможно, я ошибаюсь, понимая, как компилятор запускает мой код.
Presser.value=0 means->player is in game
Presser.value=1 means->player paused game
Presser.value=2 means->player pressed button and variable need reset to 0, after resumed to game.
для тестирования я добавил ключ "пробел" для возобновления в игре. Это работает. И я могу переключать бесконечные представления (вот как это должно работать)
У меня проблема только при использовании кнопки.
public class Window extends JFrame{
private JPanel jPanel1 = new JPanel1();
private JPanel jPanel2 = new JPanel2();
private Timer t;
Presser presser = new Presser();
public Window(){
add (jPanel1);
pack();
setVisible(true);
addKeyListener(keyboardListener);
tester();
}
private final KeyAdapter keyboardListener = new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_ESCAPE:
add (jPanel2);
remove (jPanel1);
pack();
setVisible(true);
Presser.value=1;
break;
case KeyEvent.VK_SPACE:
add (jPanel1);
remove (jPanel2);
pack();
setVisible(true);
Presser.value=0;
break;
}
}
};
public void tester(){
Timer timer = new Timer();
timer.schedule( new TimerTask() {
public void run() {
System.out.println(Presser.value);
if (Presser.value==2){
add (jPanel1);
remove (jPanel2);
Presser.value=0;
pack();
setVisible(true);
timer.cancel();
timer.purge();
return;
}
}
}, 0, 1000);
}
}