StringBuffer刽子手

时间:2012-08-31 01:02:40

标签: java

在我的刽子手应用程序中,我想要隐藏一个假设被猜到的单词,用“_”我终于找到了一个网站,有人解释如何做到这一点但是当我将他的代码与我的融合时,我似乎得到了错误我跑的时候......

这是我找到代码的网站

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());

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

1 个答案:

答案 0 :(得分:3)

StringBuffer不是String

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

正如HovercraftFullOfEels所述,在实施任何其他人的想法之前,了解这些想法是什么以及它们如何运作,不仅能让你获得更好的结果,还能成为更好的开发者;)