Каждый раз, когда я проверяю ввод пользователя из окна jtextfield, результат печатается только в моем графическом окне, когда я перемещаю все графическое окно - PullRequest
1 голос
/ 16 мая 2019

Итак, я делаю игру с угрозой, и есть поле jtext, где пользователь вводит свой ответ. Когда они нажимают кнопку отправки, их ответ сохраняется в переменной. Эта переменная берется в класс, где создается доска для защиты от угроз, и проверяет ввод пользователя с ответом. Но для того, чтобы в моем графическом окне появилось правильное или неправильное, я должен минимизировать графическое окно и распечатать, как это создает другое окно jtextfield, а затем только правильное или неправильное.

 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.Scanner;

 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JTextField;

public class Answer extends JFrame implements ActionListener {

    static Scanner sc = new Scanner(System.in);
    static String s;
    static JTextField textfield;
    static JButton jButton;


     public  void findingAnswer() {

          JFrame jf = new JFrame();
          textfield = new JTextField("", 30);
          jButton = new JButton();
          jButton = new JButton("Click");
          jButton.addActionListener(new Answer());

          JPanel panel = new JPanel();
          JLabel jl = new JLabel("Put your answer here");
          jf.setSize(500, 500);
          jf.setVisible(true);
          jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          jf.add(panel);
          panel.add(jl);
          panel.add(textfield);
          panel.add(jButton);

     }



       @Override
       public void actionPerformed(ActionEvent arg0) {
         s = textfield.getText();

      }

    public String get_s()
     {
         return s;
     }
}

// в классе, где изготавливается доска для защиты от опасности, есть код:

 // answer box
 // calling the previous class to make the window with jtextfield
              an.findingAnswer();
// checks to see if the answer correct
// x is an object from a class where you can get the question and answer
 if (an.get_s().equals(x.getAnswer()))
                 {
                 g.drawString("Correct! +" + y + " points!", 300, 300);
                 if(turns % 2 != 0)
                  {
                      player1 += y;
                      turns ++;
                   }
                  else
                {
                     player2 += y;
                      turns ++;
                   }
            }   
              else
               {
                   g.drawString("Incorrect.\nThe correct answer is: "+   x.getAnswer(), 300, 300);
                 turns ++;
             }
             }

Ожидаемый результат - получить неверное и правильное утверждение без необходимости создавать больше окон или перемещать экран.

...