Ответ 1
Проблема заключается в том, что в то время как щелчок мыши представляет собой сложное событие, сенсорного экрана нет. Таким образом, нет способа, чтобы он мог опуститься на первое событие и снова на втором.
Но то, что вы можете сделать, когда вы получаете событие касания, - это изменение визуального состояния кнопки, чтобы оно выглядело подавленным (используя setPressed(true)
), затем установите таймер на 100 мс или около того и установите состояние обратно на нормальный, когда таймер истекает (используя setPressed(false)
).
Осторожно с истечением таймера: вам нужно, чтобы setPressed(false)
произошел в потоке пользовательского интерфейса. Поэтому вам нужно использовать SwingUtilities.invokeLater()
в качестве обертки вокруг второго вызова setPressed
. Или, альтернативно, используйте javax.swing.Timer
как средство очередности второго вызова; он принимает задержку и Action
, а Action
выполняется в потоке пользовательского интерфейса.