/ / Windows 7 dotyková obrazovka + Java Swing = oneskorené udalosti myši - java, swing, windows-7, touch

Windows 7 dotyková obrazovka + Java Swing = oneskorené udalosti myši - java, swing, windows-7, touch

Vyvíjam aplikáciu Swing v jazyku Java. Program má byť spustený na špecializovaných počítačoch s dotykovou obrazovkou so systémom Windows 7 a podľa môjho názoru by tento program mal byť za normálnych okolností jedinou vecou.

Všimol som si, že dotyková obrazovka systému Windows 7rozhranie má túto vec, kde to udrží mousedown udalosti. Kvôli geste "kliknutím a podržaním pravého kliknutia" systém Windows 7 nebude v skutočnosti odosielať žiadnu udalosť dole do:

  • užívateľ "touch ups" (zdvihnúť prst od dotyku, v ktorom bode sú dolu a hore zasielané)
  • pohybuje sa prstom (v tomto momente sa kliknutie stáva pretiahnutím)
  • alebo pravé kliknutie gesto kruhu vyprší (po približne 5-6 sekundách)

Triviálne to znamená, že tlačidlá nevyzerajústlačte tlačidlo na aplikáciu, kým nie je odoslaná udalosť myši (a nikdy ju nedotýkajte rýchlo). Ale v poslednej dobe, vážnejšie, to znamená funkciu, ktorá vyžaduje stlačenie a podržanie nemôžu bez veľkého zmätku priemerného používateľa.

V tomto bode vývoja je ďaleko je príliš neskoro, aby sa obrátil a začal od začiatku s jedným z mnohých dotykových knižníc ponúkaných pri iných otázkach. (Vyžadujú opakovanie celej aplikácie v systéme Windows ich hierarchia zložiek a jednoducho nie je to možné.Plus veci, ktoré sú kódované tak, aby sa používali udalosti myši, by potom museli byť rekodifikované pomocou dotykových udalostí a my naozaj nepotrebujeme multi-touch ...)

Áno, pokúsil som sa jednoducho vypnúť dotykové gesto s pravým kliknutím. Bohužiaľ, toto jednoducho zakazuje kreslenie kruhu označujúceho gesto s pravým kliknutím okolo prsta a oheň následného kliknutia pravým tlačidlom myši. Neodstraňuje základný problém: oneskorenú udalosť myši až do šesť sekúnd.

Moja otázka: Existuje spôsob, ako:

  • V ideálnom prípade uveďte do systému Windows svoju aplikáciuje aplikácia pripravená na dotyk, takže okamžite pošle udalosti (ale myslím, že stále posielam udalosti myši namiesto dotykových udalostí)? Vidím, že vstavaná soft klávesnica funguje správne. Chcem len, aby moje Java aplikácia urobila to isté.
  • Zakázať meškanie úplne na počítači, ale stále poskytuje základné dotykové funkcie?
  • Potenciálne niečo také jednoduché ako táto otázka, ktorá sa zdá byť otázkou toho istého javu, ale v jazyku Java?

odpovede:

1 pre odpoveď č. 1

Tento typ správania sa spravidla riadiovládač dotykového zariadenia nainštalovaný v zariadení. Všetci výrobcovia dotykov, ktorých som videli, majú aplikácie na ovládacom paneli, ktoré vám umožňujú prispôsobiť správanie dotykom. Takže napríklad môžete povedať, že ovládač okamžite pošle kliknutie myši na doručenie dotyku, namiesto krátkeho oneskorenia, aby zabránil náhodnému dotyku pri iniciovaní vstupnej udalosti.