x と y の 2 つの JSpinner オブジェクトを含むクラスがあります。両方に追加される1つの変更リスナーがあります。リスナーが2つのオブジェクトの違いを認識できるように、変更リスナーを実装する方法を誰か教えてください。例: 疑似コード:
if(source equals x)
do this
else if(source equals y)
do that
みんなありがとう、
匿名クラスを使用して、各スピナーのリスナーを実装するだけです
たとえば、変更リスナーを x に実装する場合は、次のようにすることができます。
x.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
}
});
yについても同じこと
可能であれば、コントロールごとに単一のリスナーを使用する方が賢明です(Aliが指摘したように、+1)。イベント/アクションを分離し、一般的に読みやすく、理解しやすくします...
これを使用していることがわからない場合は、イベントを発生させたコントロールへの参照でEventObject
あるメソッドがすべてあります...getSource
public void stateChanged(ChangeEvent e)
{
if (e.getSource() == xControl) {
// xControl updated
} else if (e.getSource() == yControl) {
// yControl updated
}
}