有 Java 编程相关的问题?

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

oop Java hangman用用户输入替换下划线

用于使用基本getter/setter方法分配基本java oop类

我正在使用NetBean IDE

public MainFrame() {
    initComponents();
    hangman hangman=new hangman();
    hangman.setWord(Word.wordArray);
    jLabel1.setText(hangman.getWord());
    jLabel2.setText(jLabel1.getText().replaceAll(".", " _ "));
}

private void jTextActionPerformed(java.awt.event.ActionEvent evt) {                                      
    // TODO add your handling code here:
    StringBuilder builder = new StringBuilder(jLabel2.getText());
    for(int i=0; i<7; i++){
        hangman hangman=new hangman();
        hangman.setInput(jText.getText().charAt(0));
        jText.setText("");
        for(int j=0; j<jLabel1.getText().length(); j++){
            if(jLabel1.getText().toLowerCase().charAt(j)==hangman.getInput()){
                if(jLabel1.getText().toLowerCase().charAt(j)==hangman.getInput()){
                    builder.setCharAt(j, hangman.getInput());
                    jLabel2.setText(builder.toString());
                }
            }
        }
    }
}  

问题是getInput显示得很好,但下划线仍然存在

代码是不完整的,我仍然在尝试很多函数和方法,同时我发布这篇文章是为了让你们了解一些情况

提前谢谢你


共 (1) 个答案

  1. # 1 楼答案

    您使用了错误的StringBuilder方法。您不想使用setCharAt(...),而是使用.replace​(int start, int end, String str)方法,这里可能是:

    builder.replace(j, j+1, stringToInsert);
    

    正如我在上面的评论中所指出的,最好在与GUI隔离的情况下调试和增强代码(除非是GUI特有的问题)。在这里,您希望创建一个类,可能是HangmanModel,它保存字符串,保存当前的字符猜测,并在猜测过程中提供一个带有破折号和字母的字符串


    关于以下方面的附带问题:

     hangman hangman=new hangman();
    

    您将想要学习和使用Java naming conventions。变量名都应该以小写字母开头,而类名应该以大写字母开头。学习这一点并遵循这一点可以让我们更好地理解您的代码,也可以让您更好地理解其他人的代码

    因此,最好将名称更改为^{,然后将上面的行更改为:

     Hangman hangman = new Hangman();