-2

在我的刽子手应用程序中,我想用“_”隐藏一个可能被猜到的词,我终于找到了一个网站,有人解释了如何做到这一点,但是当我将他的代码与我的代码融合时,我运行时似乎出错了它...

这是我找到代码的网站

http://www.jcreator.com/forums/index.php?showtopic=7761

这就是我尝试使用他的代码的方式

StringBuffer original = new StringBuffer(readWord());
StringBuffer secret = new StringBuffer(hideWord()) ;
StringBuffer hidden;

 public StringBuffer hideWord(){
    for (int i = 0; i < original.length(); i++){
        hidden.append("_ ");
    }
    hidden.deleteCharAt(hidden.length()-1);
    return hidden;
}

 public JButton getButton(final String text){
   final JButton button = new JButton(text);
    button.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
             String s = button.getText();
             int index = original.indexOf(s);
             if(index != -1){
                 hidden.deleteCharAt(index*2);
                 hidden.insert(index *2, s);
             }
             else{
                 JOptionPane.showMessageDialog(null, "There is no " + text );
                 error++;
                    if(error >= 0) imageName = "hangman1.jpg";
                    if(error >= 1) imageName = "hangman2.jpg";
                    if(error >= 2) imageName = "hangman3.jpg";
                    if(error >= 3) imageName = "hangman4.jpg";
                    if(error >= 4) imageName = "hangman5.jpg";
                    if(error >= 5) imageName = "hangman6.jpg";
                    if(error >= 7) imageName = "hangman7.jpg"; 
             }
             }
             });
             return button;
}

并且在显示单词时似乎我的 JLabel 出现问题,所以我将其更改为 .toString

JLabel word = new JLabel(secret.toString());

有人可以告诉我我的应用程序不想运行吗,以及我融合代码的方式是否正确?

4

1 回答 1

3

StringBuffer不是一个String

当您调用时,new JLabel(secret)您是在要求编译器找到一个构造函数,JLabel该构造函数将 aStringBuffer作为参数,但没有任何参数。

正如 HovercraftFullOfEels 所说,在实施任何其他人的想法之前,了解这些想法是什么以及它们是如何工作的,不仅你会得到更好的结果,而且你会成为一个更好的开发者;)

于 2012-08-31T01:08:43.110 回答