0

x と y の 2 つの JSpinner オブジェクトを含むクラスがあります。両方に追加される1つの変更リスナーがあります。リスナーが2つのオブジェクトの違いを認識できるように、変更リスナーを実装する方法を誰か教えてください。例: 疑似コード:

if(source equals x)
    do this
else if(source equals y)
    do that

みんなありがとう、

4

2 に答える 2

3

匿名クラスを使用して、各スピナーのリスナーを実装するだけです

たとえば、変更リスナーを x に実装する場合は、次のようにすることができます。

x.addChangeListener(new ChangeListener()
{
   public void stateChanged(ChangeEvent e)
   {
   }
});

yについても同じこと

于 2013-03-19T22:55:40.060 に答える
2

可能であれば、コントロールごとに単一のリスナーを使用する方が賢明です(Aliが指摘したように、+1)。イベント/アクションを分離し、一般的に読みやすく、理解しやすくします...

これを使用していることがわからない場合は、イベントを発生させたコントロールへの参照でEventObjectあるメソッドがすべてあります...getSource

public void stateChanged(ChangeEvent e)
{
    if (e.getSource() == xControl) {
        // xControl updated
    } else if (e.getSource() == yControl) {
        // yControl updated
    }
}
于 2013-03-19T23:16:42.110 に答える