java - JOptionPane中的猜数字游戏,JPanel不显示(Java)

标签 java swing joptionpane

所以我使用JOptionPane制作了一个猜数字游戏程序,我的问题是,当我运行该程序时,没有窗口显示,并且即使我构建时没有错误,程序也会结束它。

到目前为止我的代码是这样的。

import javax.swing.*;
import java.awt.*;
import java.util.*;

public class TestNo4 {
    public static void main(String[] args) {
        Random ranNum = new Random();
        int secretNum = ranNum.nextInt(100) + 1;
        int guess = 0;
        int guessNo = 0;
        int guessLimit = 5;

        JTextField numUserIn = new JTextField(5);
        JPanel getInput = new JPanel();
        getInput.add(new JLabel("Enter you guess(Limit of 5 guesses)"));
        getInput.add(numUserIn);

        for (int countGuess = 0; countGuess == guessLimit; countGuess++) {
            int numInput = JOptionPane.showConfirmDialog(null, getInput,
                    "Guess number " + countGuess, JOptionPane.OK_CANCEL_OPTION);
            if (numInput == JOptionPane.OK_OPTION) {
                guess = Integer.parseInt(numUserIn.getText());
                if (guess == secretNum) {
                    JOptionPane.showMessageDialog(null, "Congratulations!!",
                            "Got it in " + countGuess + " tries",
                            JOptionPane.INFORMATION_MESSAGE);
                    break;
                }
                if (countGuess == guessLimit) {
                    JOptionPane.showMessageDialog(null,
                            "Sorry, No more guesses left.", "The number is"
                                    + secretNum,
                            JOptionPane.INFORMATION_MESSAGE);
                    break;
                }
                if (guess > secretNum) {
                    JOptionPane.showMessageDialog(null, "Hint",
                            "Try something lower.",
                            JOptionPane.INFORMATION_MESSAGE);
                } else {
                    JOptionPane.showMessageDialog(null, "Hint",
                            "Try something higher.",
                            JOptionPane.INFORMATION_MESSAGE);
                }

            }
        }

    }
}

有什么想法我哪里出错了吗?

最佳答案

更改以下行即可工作

for (int countGuess = 0; countGuess == guessLimit; countGuess++) {

for (int countGuess = 0; countGuess <= guessLimit; countGuess++) {

问题出在终止条件上。由于它只检查相等的值,因此它永远不会运行循环。

关于java - JOptionPane中的猜数字游戏,JPanel不显示(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34148919/

相关文章:

java - Apache wicket 按钮 setMarkupId 不起作用

java - 使用 Apache HTTP 组件的 HTTP 身份验证 : force sending of challenge

java - 从 opencsv java 包重置 CsvToBean 的迭代器

java - JMenuItem.getRootPane() 解决方法?

Java-setVisible(true)

java - 通过单击其他任何地方来防止 JOptionPane 为 "closed"

java - hibernate/JPA : Get one (first) element of a OneToMany relationship

java - 模拟MouseEvent、KeyEvent等

java - 如何使用showconfirmdialog更改字体?

Java多选对话框