0

私は小さな Java アプリを作成しています (Windows の場合、名前に _on_vista が追加されます)。

私は 3 つのボタンを取得しました。これらはすべてクリック イベントに反応しますが、異なることを行います。

次のコードは受け入れられる方法ですか、それとも私が知らないよりクリーンな方法はありますか? 半分はうまくいきますが、もう半分は何かがおかしいようです...

ありがとう

cool_button_1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        coolfunction1();
    }
});

cool_button_2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        coolfunction2();
    }
});

// etc ...

呼び出される関数は、必要に応じてスレッドから生成されます。

更新- どちらも良い(ほとんど同じ)答えでした。富を分かち合うために、担当者の低い方を受け入れました。みんなありがとう。

4

5 に答える 5

3

はい、これが正しい方法です。ちょっとぎこちない (メソッドを呼び出せるようにするためだけに 5 行の長いコードを書かなければならない) が、それは Java :(

于 2009-02-19T14:12:10.717 に答える
0

私はこのようなことをする傾向があります:

public class ButtonPanel implements ActionListener {
    JButton button1, button2, button3;
    public ButtonPanel() {
        button1 = new JButton(this);
        button2 = new JButton(this);
        button3 = new JButton(this):
        ...
    }

    public void ActionPerformed(ActionEvent e) {
        if( e.getSource() == button1 ) action1();
        else if( e.getSouce() == button2  ) action2();
        else if( e.getSource() == button3 ) action3();
    }
}
于 2009-02-19T14:57:13.633 に答える
0

Javaコードと同様に、コードは問題ないと思います。これは、しばしば批判される Java の冗長性の良い例です。この場合は、クロージャーがないためです。

于 2009-02-19T14:12:53.477 に答える