0

我有 HangGame 程序,当我按下任何后者按钮时,我不会编写此代码,例如 (A,B,.....)在文本文件中读取它例如我在文本文件中读取单词,如(Stake),屏幕上会出现五个标签(_ _ _ _ _),当我按住 S 按钮时,字符 S 将出现在第一个标签部分( S _ _ _ _ ) 等等.... 我不知道如何为 Button 中的 Action 侦听器编写代码。最后我添加标签没有问题,但我不知道如何将正确的字符放在正确的位置。我希望你能理解我的问题。

    public void ButtonComponent () {
    for (int i = 65; i < 78; i++) {
        JButton temp = new JButton("" + (char) i);
        temp.addActionListener(new BtnListener());
        temp.setBounds((i - 64) * 55, 110, 50, 30);
        add(temp);
    }
    for (int i = 78; i < 91; i++) {
        JButton temp = new JButton("" + (char) i);
        temp.addActionListener(new BtnListener());
        temp.setBounds((i - 77) * 55, 150, 50, 30);
        add(temp);
    }
}
class BtnListener implements ActionListener {
public void actionPerformed(ActionEvent e) {

    for (int s=0;s<splitword.length;s++) {
    String btnText = ((JButton)e.getSource()).getText().toLowerCase();
    if (splitword[s].contains(btnText)) {
        System.out.println("This letter is contained in the word:" + btnText);
    }
4

1 回答 1

1

因为这是刽子手,您必须跟踪使用的所有正确字母。这是解决方案的模板:

String guessWord = "STAKE";
StringBuilder builder = new StringBuilder();
builder.append("S"); // hint: btnText...
builder.append("T");
String displayWord = guessWord.replaceAll("[^" + builder.toString() + "]", "_");

我不会彻底解决问题,但这应该给你足够的工作。

于 2012-11-24T21:55:00.623 回答