Итак, я делаю игру с угрозой, и есть поле 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 ++;
}
}
Ожидаемый результат - получить неверное и правильное утверждение без необходимости создавать больше окон или перемещать экран.