0

これが私のコードの ActionListener 部分です。リセットボタンに注目。

public void actionPerformed( ActionEvent e) {
    int i;
    for (i = 0; i < 26; i++) {
        if (e.getSource() == a[i]) { 
            consultWord(i); 
        }
    }

    if (e.getSource() == reset) {
        Hangman gui = new Hangman();
        System.out.print("test");
        gui.go();
    }
}   

明らかに、それよりもはるかに上にあります (これは非常に最後にあるため)。ボタン配列 1 (top if ステートメント) は完全に機能します。ボタン 2 (一番下の if ステートメント) はまったく機能しません。テスト出力テキストは表示されません。ここで変数を宣言しました。(それらはすべてのコードで使用できます)。

JButton reset = new JButton("Reset");
private Button a[];

それがあなたにとって何か意味があるのであれば、ここに a[] ボタンを設定するためのコードがあります。

int i;
StringBuffer buffer;
a = new Button[26];
topPanel.setLayout( new GridLayout( 4,0, 10, 10) );
for (i = 0; i <26; i++) {
    buffer = new StringBuffer();
    buffer.append((char)(i+'a'));
    a[i] = new Button(buffer.toString());
    a[i].setSize(100,100);
    a[i].addActionListener( this );
    topPanel.add(a[i]);
}

下のボタンがスクワットをしていない理由はありますか? 必要に応じて、コード全体を貼り付けます。

4

1 に答える 1

0

ActionListenerたぶんあなたは単にあなたのresetボタンにを追加するのを忘れましたか?これは上記のコードにはありません…</p>


補足として、コードをよりクリーンにするためのいくつかの提案を示します。

  • 必要ありません:StringBuffer単に使用してくださいString.valueOf((char)(i+'a'))
  • これはあなたの方法ActionListenerを乱雑にするので、私はあなたが持っているすべてのボタンに同じものを使うわけではありません。ここでは、匿名の内部クラスが役立ちます。actionPerformed
于 2012-09-30T22:57:55.287 に答える