爪哇刽子手秋千
工作原理:这是一个适用于刽子手的swing小程序。“消息框”用来显示他们还剩多少猜测,然后显示他们最终是赢还是输。“输出窗格”将显示空的字母空格以及他们猜到的字母。(例如:如果单词是dog,它将显示
问题:当我运行它时,我可以输入单词并按下OK。它在输出窗格中只显示一个下划线,在消息框中显示“您有6次尝试进行猜测”。然后出现一系列错误,应用程序崩溃。我没有第二个OK按钮的事件处理程序,他们在那里输入字母猜测,但我知道我需要一个。我只是不知道应该将哪些代码转移到该事件处理程序
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 楼答案
之所以只有一个下划线,是因为您经常将输出窗格中的文本设置为“+下划线[i]+”。每次设置文本时,都会有效地删除以前存在的任何文本
对于这个问题,在设置文本之前,可以将空格和下划线相加为一个字符串
至于异常,我当然会添加一个异常处理程序;然而,这并不能真正解决问题。在这种情况下,错误通常是由错误处理阵列引起的。我会仔细检查它们,确保您没有初始化或调用不存在的元素