首页 > 解决方案 > 每次我从 jtextfield 窗口检查用户的输入时,当我移动整个图形窗口时,结果只会打印在我的图形窗口上

问题描述

所以我正在制作一个危险游戏,并且有一个 jtextfield,用户可以在其中输入他们的答案。当他们单击提交按钮时,他们的答案存储在一个变量中。该变量被带入制作危险板的类中,并检查用户的输入和答案。但是为了在我的图形窗口上显示正确或不正确,我必须最小化图形窗口以及如何创建另一个 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 ++;
             }
             }

预期的结果是无需创建更多窗口或移动屏幕即可获得不正确且正确的语句。

标签: javaswinggraphicsjframejpanel

解决方案


推荐阅读