Можно ли попросить еще один клик на JButton? - PullRequest
0 голосов
/ 04 мая 2019

Мне нужно попросить пользователя щелкнуть в другой раз на JButton для предоставления действия, но я не знаю, как запросить еще один клик. (Я новичок)

Здравствуйте, В настоящее время я делаю Java-программу для своего класса информатики: это небольшая видеоигра, в которой есть карта, созданная из JButtons: каждая кнопка - это случай, в котором пользователь нажимает, чтобы переместить персонажа на карту. Как и в любой игре, здесь должна быть сложная часть: на карте есть три врага, и пользователь должен щелкнуть по случаям, в которых он должен начать бой.

Бой основан на трех случайных числах: если первое больше 70, пользователь теряет одну жизнь. Он должен нажать еще раз на кнопку, чтобы запустить еще одну пробную версию, и борьба продолжается до тех пор, пока одно из случайных чисел не выполнит условие, и вот в чем проблема: все делается за один раз, пользователь нажимает на кейс и программу проверяет все числа, чтобы пользователь не испытывал желания начинать каждый бой.

Я хотел бы знать, можно ли запросить другое нажатие кнопки перед запуском проверки состояния?

Заранее спасибо,

Начинающий лимон.

 if (source == Px3y2) {
     numclickPx3y2 = numclickPx3y2 + 1; //I tried to create a variable that counts how many times the button has been cicked, but it doesn't change the result  
     if (e1 == 1) {
         if (n1 <= 1) {
             sx = pix + 200; //These are the variables that help the program to know where the character is on the map
             sy = piy + 200;

             GestionEnnemis1(); //Function to manage the fight

             x4y2.setIcon(null);
             x4y2.setIcon(new ImageIcon("4-2.png"));
             x4y2.repaint(); //Changing the images on the cases
         } else {
             looselife1(); //Function that removes one life 
         }
         if (numclickPx3y2 == 2) {
             if (n2 > 1) {
                 looselife2();
             }
             if (numclickPx3y2 == 3) {
                 if (n3 > 70) {
                     game();
                 }
             } else {
                 sx = pix + 200;
                 sy = piy + 200;

                 GestionEnnemis1();

                 x4y2.setIcon(null);
                 x4y2.setIcon(new ImageIcon("4-2.png"));
                 x4y2.repaint();
             }

         } else {
             sx = pix + 200;
             sy = piy + 200;

             GestionEnnemis1();
             x4y2.setIcon(null);
             x4y2.setIcon(new ImageIcon("4-2.png"));
             x4y2.repaint();
         }

Я ожидал, что программа сделает поражения одно за другим, одно испытание за один щелчок по кнопке, но нажатие кнопки запускает все одновременно.

...