如何在java中的for循环中添加映像
这是一个刽子手游戏如何在java中的for循环中添加映像,java,swing,Java,Swing,这是一个刽子手游戏 public static String letterGuessed; public static String[] word = {"fuzzy","chess","elephant","cheesecake","charger","laptop","relevance","funnybone"}; public static int ran; public static JLabel jl = new JLabel(); public void wordGenerat
public static String letterGuessed;
public static String[] word = {"fuzzy","chess","elephant","cheesecake","charger","laptop","relevance","funnybone"};
public static int ran;
public static JLabel jl = new JLabel();
public void wordGenerator(){
int max = 8;
int wordLength;
int counter = 0;
int min = 0;
ran = (int)(Math.random()* (max - min +1) + min);
wordLength = word[ran].length();
while (counter <= wordLength){
lblWord.setText( lblWord.getText() + "_ ");
counter++;
}
}
public void getLetter(){
letterGuessed = txtLetterGuess.getText();
}
public void rightOrWrongGuess() {
if (word[ran].contains(letterGuessed)){
//lblWord.replace.
} else {
//PICTURE CHANGE
}
lblGuessedLetters.setText(lblGuessedLetters.getText() + "_ " + letterGuessed);
}
private void btnGuessLetterActionPerformed(java.awt.event.ActionEvent evt) {
getLetter();
rightOrWrongGuess();
for (int i=0;i<=6;i++) {
if (!word[ran].contains(letterGuessed)) {
lblPicture.setIcon(new ImageIcon("C:\\Pic\\hangman" + i + ".jpg"));
}
}
猜测公共静态字符串字母;
公共静态字符串[]word={“fuzzy”、“chess”、“大象”、“cheesecake”、“充电器”、“笔记本电脑”、“相关性”、“funnybone”};
公共静态整数;
公共静态JLabel jl=新JLabel();
公共void wordGenerator(){
int max=8;
int字长;
int计数器=0;
int min=0;
ran=(int)(Math.random()*(max-min+1)+min);
wordLength=word[ran].length();
虽然(counter你不想使用for循环,这是没有意义的,因为你将在所有图像中循环,每次按下按钮后,立即。因此,如果用户按下按钮一次,六个图像将立即交换,因为这是在Swing事件线程中完成的,它们将根本看不到,除了再按一次按钮,拉链,同样的事情发生了
不,您只需要在actionPerformed中增加一个int计数器变量,然后使用该int更改图像一次,而不是在for循环中
e、 g.在伪代码中
private void btnGuessLetterActionPerformed(java.awt.event.ActionEvent evt) {
get the letter selected
if the letter is correct,
update the guess word display to show the new letter in the word
end if
else // the letter is incorrect
incorrectGuessCount++;
if incorrectGuessCount == max, game over, show whole image
else
setIcon to the hangmanImageIconList.get(incorrectGuessCount)
end else
end else
}
另外,在程序开始时将所有图像加载到ArrayList中,而不是按按钮。我会尝试先为路径构建字符串并将其放入变量中,然后使用该变量创建ImageIcon对象。具体出现了什么错误?有几个问题。此循环会重复7次,原因是它似乎不存在o工作?使用一些简单的打印语句来检查计数器是否工作。在循环打印输出i中,在if语句中打印图片位置,然后查看实际不工作的地方。@user3746363首先让其他东西工作。必须在城市之前建造房子:)这很有帮助。我的最后一个难题是更改图像。有六个:Hangman 1.jpg、Hangman 2.jpg、Hangman 3.jpg等。我想更改数字。@user3746363:您在上面的评论中问了问题吗?如果是,您的问题是什么?与我的代码有关。这是我试图用for loopOK做的,但您理解了现在为什么这是一个坏主意,为什么for循环不应该出现在那里,对吗?是的,我只是不知道如何在每次错误猜测后让每张图片出现