セルがダブルクリックされたときに関数を呼び出し、セルがトリプルクリックされたときに別の関数を呼び出す JTable があります。
セルがトリプルクリックされたときに、ダブルクリック機能を呼び出したくありません。
私が今持っているのは(mgrdAlarmはJTableです):
mgrdAlarm.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
System.out.println("getClickCount() = " + e.getClickCount());
if (e.getClickCount()==2)
{
doubleClick();
System.out.println("Completed : doubleClick()");
}
if (e.getClickCount()==3)
{
tripleClick();
System.out.println("Completed : tripleClick()");
}
}
});
コンソールをダブルクリックすると、次のように表示されます。
getClickCount() = 1
getClickCount() = 2
Completed : doubleClick()
コンソールをトリプルクリックすると、次のように表示されます。
getClickCount() = 1
getClickCount() = 2
Completed : doubleClick()
getClickCount() = 3
Completed : tripleClick()
トリプルクリックすると、コンソールに次のように表示されます。
getClickCount() = 1
getClickCount() = 2
getClickCount() = 3
Completed : tripleClick()
したがって、セルがトリプルクリックされたときに関数 doubleClick() を呼び出したくありませんが、セルがダブルクリックされたときに関数 doubleClick() を呼び出したいです。
[編集]
すべての返信が示唆しているように、解決策はダブルクリックアクションを遅らせ、トリプルクリックを一定時間待つことです。
しかし、ここで説明したように、別のタイプの問題につながる可能性があります。ユーザーがダブルクリック時間をかなり長く設定した可能性があり、トリプルクリックのタイムアウトと重なる可能性があります。
ダブルクリック アクションがトリプル クリック アクションの前に実行されても、それは実際の災害ではありませんが、余分なオーバーヘッドが発生し、特に防止したい余分なデータ トラフィックが発生します。
これまでの唯一の解決策は、実際には元の問題よりも悪い他の問題につながる可能性があるため、そのままにしておきます。