【问题标题】:Hangman method with Swing使用 Swing 的 Hangman 方法
【发布时间】:2014-06-13 17:33:43
【问题描述】:

我有所有必要的实例变量和所有其他类,但我需要帮助找出一种方法来设置用户在解决单词的 TextField 中的进度,以便最初显示与 secretWord 中的字母一样多的下划线. 我在想类似的东西,

//One for each letter
theWordField.setText("" +
    theWordField.getText().replace(
        theWordField.substring((secretWord.indexOf("A")),  
        secretWord.indexOf("A")), _));

但是您不能在 TextField 中使用子字符串,我不知道该怎么做

【问题讨论】:

  • 帮自己和我们一个忙,尽量不要在一行上塞满尽可能多的代码。而是以逐步的方式解决您的问题,每个小步骤都获得它自己当之无愧的代码行。在小细节中,您将解决您的问题。\
  • 考虑使用 char 数组或 StringBuilder 对象,然后根据需要交换 char。
  • 有几个问题。首先是你需要先获取 theWordField 的文本。 theWordField.getText().substring 解决了这个问题。但是你还有更多的问题......如果你按照@HovercraftFullOfEels 的建议做,并且一次一步从逻辑上解决你的问题,你可以看到这其中的哪些部分没有意义。

标签: java swing methods textfield


【解决方案1】:

您可以使用以下方法获取秘密词的长度:

secretWord.length();

一旦您知道字符串的长度,您就可以在文本字段中插入等量的下划线,方法是依赖已插入的先前文本,或者创建自己的字符串并添加下划线:

String textFieldString = "";
for(int i=0; i<secretWord.length(); i++) {
    textFieldString += "_";
}

textField.setText(textFieldString);

【讨论】:

    【解决方案2】:

    循环加载

    例如:

    String wordToGuess = "example";
    String hidden = "";
    for(int i = 0; i < wordToGuess.length(); i++){
        hidden += "_";
    }
    
    theWordField.setText(hidden);
    

    【讨论】:

      【解决方案3】:

      使用theWordField.getText().substring()

      【讨论】:

        猜你喜欢
        • 2016-11-06
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 2018-01-31
        • 1970-01-01
        • 1970-01-01
        • 2012-12-11
        相关资源
        最近更新 更多