有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

爪哇刽子手秋千

工作原理:这是一个适用于刽子手的swing小程序。“消息框”用来显示他们还剩多少猜测,然后显示他们最终是赢还是输。“输出窗格”将显示空的字母空格以及他们猜到的字母。(例如:如果单词是dog,它将显示

问题:当我运行它时,我可以输入单词并按下OK。它在输出窗格中只显示一个下划线,在消息框中显示“您有6次尝试进行猜测”。然后出现一系列错误,应用程序崩溃。我没有第二个OK按钮的事件处理程序,他们在那里输入字母猜测,但我知道我需要一个。我只是不知道应该将哪些代码转移到该事件处理程序

enter image description here

private void okButtonWordWordActionPerformed(java.awt.event.ActionEvent evt) {                                                 
String wordToGuess = wordToGuessTextBox.getText();
    char[] underscore = new char[wordToGuess.length()];
    for (int i = 0; i < wordToGuess.length(); i++) {
      underscore[i] = '_';
    }

    for (int i = 0; i < wordToGuess.length(); i++) {
      underscore[i] = '_';
    }

    int wordLenToGuess = wordToGuess.length();
    int unsuccessfulTries = 6;

    while(wordLenToGuess >0 && unsuccessfulTries >0 ){
        for ( int i = 0; i < wordToGuess.length(); i++) {
          outputPane.setText(" " + underscore[i] + " ");
                  }


        messageBox.setText("You have " +unsuccessfulTries+ " tries to make a guess");
        char guess = letterGuess.getText().charAt(0);
        boolean iscorrect = false;
        for (int i = 0; i < underscore.length; i++) {
            if(wordToGuess.charAt(i) == guess)
            {
                underscore[i] = guess;
                wordLenToGuess--;
                iscorrect = true;
            }
        }

        if(!iscorrect)
            unsuccessfulTries--;
    }

    if(wordLenToGuess == 0)
        messageBox.setText("YOU WIN!! :)");
    else messageBox.setText("Sorry! You Lose :(");


}                         

共 (1) 个答案

  1. # 1 楼答案

    之所以只有一个下划线,是因为您经常将输出窗格中的文本设置为“+下划线[i]+”。每次设置文本时,都会有效地删除以前存在的任何文本

    对于这个问题,在设置文本之前,可以将空格和下划线相加为一个字符串

    至于异常,我当然会添加一个异常处理程序;然而,这并不能真正解决问题。在这种情况下,错误通常是由错误处理阵列引起的。我会仔细检查它们,确保您没有初始化或调用不存在的元素