如何在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循环不应该出现在那里,对吗?是的,我只是不知道如何在每次错误猜测后让每张图片出现