gpt4 book ai didi

java - 使用我的 JAVA 代码获取多个 JFrame

转载 作者:行者123 更新时间:2023-11-29 05:57:42 24 4
gpt4 key购买 nike

我知道;这越来越糟糕了,我确实试图想出一个可能的解决方案。基本上,当我的程序应该只打开一个而不显示任何我想要的随机数学问题时,我的程序打开了多个小程序。这是我得到的代码:

package RandomMathGame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class RandomMathGame {

public static void main(String[] args) {
RandomProblemGenerator randomProblems = new RandomProblemGenerator(10);
final int numberProblems = 10;
int correctScore = 0;
JPanel panel = new JPanel();
JPanel[] questionPanel = new JPanel[numberProblems];
JPanel mainQuestionPanel = new JPanel();
JPanel mainPanel = new JPanel();
int answer;
int correctAnswer;
JLabel[] mathProblems = new JLabel[numberProblems];
final JTextField[] mathAnswers = new JTextField[numberProblems];
JLabel[] correctYesNo = new JLabel[numberProblems];
final JLabel score = new JLabel(correctScore + "/10");
JButton submit = new JButton("Submit");

mainQuestionPanel.setLayout(new GridLayout(1, 10));

for (int i = 1; i <= numberProblems; i++)
{
final int X = randomProblems.createNumberX();
final int Y = randomProblems.createNumberY();

mathProblems[i] = new JLabel("" + X + " * " + Y + " = ");
mathAnswers[i] = new JTextField();

String answerStr = mathAnswers[i].getText();

if(answerStr.isEmpty()){

correctYesNo[i] = new JLabel("Not a valid answer/answer field empty!");
} else {

answer = Integer.parseInt(mathAnswers[i].getText());
correctAnswer = X * Y;

if (answer == correctAnswer)
{
correctYesNo[i] = new JLabel("Correct answer; good job!");
correctScore = correctScore + 1;
}
else
{
correctYesNo[i] = new JLabel("Incorrect answer; try again!");

}
questionPanel[i].add(mathProblems[i]);
questionPanel[i].add(mathAnswers[i]);
questionPanel[i].add(correctYesNo[i]);
mainQuestionPanel.add(questionPanel[i]);
}

final int temp = correctScore;
submit.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
score.setText("Score: " + temp + "/10");
}
});



panel.add(submit);
panel.add(score);
mainPanel.setLayout(new GridLayout(1, 2));
mainPanel.add(mainQuestionPanel);
mainPanel.add(panel);
JFrame gameFrame = new JFrame();
gameFrame.setTitle("Random Math Game");
gameFrame.setSize(1000, 1000);
gameFrame.setVisible(true);
gameFrame.setContentPane(mainPanel);



}
}
}

最佳答案

问题在于 gameFrame 是在 for 循环中创建(并显示)的。在创建 gameFrame 对象之前尝试关闭循环。

关于java - 使用我的 JAVA 代码获取多个 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11406600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com