0

私はHangGameプログラムを持っていますが、(A、B、.....)のような後のボタンを押すと、このコードを記述しません。後者を押すと、単語のラベル部分の正しい場所に表示されます。たとえば、テキストファイルで単語を読みます(ステーク)のようにテキストファイルで単語を読みます。画面に5つのラベル(_ _ _ _ _)が表示されます。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 に答える