2017-03-07 57 views
14

Varolan bir çapraz platform java projesine çoklu dokunuş eklemeye çalışıyorum. 2 yöne baktım. Başka birçok yol vardı ama çapraz platform ya da özel bir yazılım gerektirmediler.Çok dokunuşlu çapraz platformlu java uygulaması (Windows, Mac ve Linux (Ubuntu) (muhtemelen Android)

  1. JavaFx - Pencerelerde ve osx'te elle yapılan ve/veya çalışma olaylarında çalışan ancak Ubuntu'da çalışmayan 16.04.
  2. MT4J - Durdurulan ve/veya desteklenmeyen görünüyor.

Yukarıdakiler için vardığım sonuçlar yanlış olabilir ve iyi bir geri bildirim verdikten sonra tekrar denemeye istekliyim. Çapraz platform çoklu dokunma java uygulamasına ulaşmanın bir yolu var mıdır?

Görünüşe göre, bazı yerel kodları yazmam ve bir çok iş gibi görünen JNI'den eklemem gerekebilir. Bu düşünce hattında herhangi bir fikir var mı? Geri besleme takdir, teşekkürler.

Devam 1.0: Şu anda JavaFX kullanarak için tek dezavantajı linux çok noktalı dokunma desteği çünkü çoğunlukla linux üzerinde JavaFX kullanarak araştıran tutmuş

. Elde ettiğim şey, JavaFx multitouch'un gömülü sistemler için olan Linux dağıtımları üzerinde çalıştığıdır (örneğin: Raspberry Pi, muhtemelen en dürüst olmak gerekirse). Bundan sonra, OpenJFX'in gömülü sistem için derlenebilmesi durumunda OpenJFX'in gömülü sürümü, X11/GTK yerine giriş yapmak için (/ dev/input /) doğrudan aygıt sürücülerini kullanır. Masaüstü için X11/GTK kullanımı için Linux dağıtımları masaüstüne girdiğinden JavaFx, bu tür olayları destek eksikliğinden dolayı alamıyor.

(Ben bir bağlantı kullanmak istemeyen ama burada x86 sistemleri için OpenJFX bir sürümünü derlemek hakkında olmak, at-azından bana

https://wiki.openjdk.java.net/display/OpenJFX/Building+the+OpenJFX+embedded+stack+for+Linux+desktop

Yukarıdaki bağlantı, görünüyor cihaz girişini almak için gömülü sistemler kullanan x64) çalışmalıdır. Bu sürümü derleyebildim ama çalıştırdığımda Masaüstü çökmesine neden oluyor ve bazen Java Uygulamasını kaldırıyor. Java Uygulaması çalışır durumda bırakıldığında, dokunma olayları işe yarıyor, ancak bu sonuç beklenmedik olduğundan ve masaüstü yöneticisini çökertmiş gibi göründüğü için kabul edilmeyecektir (Bundan sonra masaüstünün yeniden başlatılmasını gerektirir).

Devam 1.1:

Ben TUIO kullanarak içine baktım ama örnek programların hiçbiri çalıştı. Cihazlarımın kullanamadıkları özel bir standart/protokolu olabilecek bir TUIO etkinleştirme cihazına ihtiyacınız olduğunu söylüyorlar. Hemen hemen TUIO demosunu indirdi ve şanssız bir dokunmatik ekranda çalıştı.

Ayrıca, java uygulama penceresine xev eklemeyi ve sonuçları java uygulaması tarafından okunacak ve java olaylarına ayrıştırılacak bir dosyaya aktarmayı düşündüm. Bu oldukça hacky gibi görünüyor ve hatta işe yarayacak mı emin değilim. Birisi bu çalışma olasılığını ortaya koyarsa, deneyebilirim. Ama bu noktada çok çalışmak gibi görünüyor.

Devam 1.2:

bu https://bugs.openjdk.java.net/browse/JDK-8090954 Bulunan

ve ilginç olduğunu düşündüm.

Aşağıdaki çözümü okuyun.

cevap

4

en son olmuştur birçok çapraz platformu projesi jeneratörleri

doğal tepki Cordova kullandığım bu

bazı yerel It React olan bir platforma göre aşağı derlenmektedir JavaScript kodlarını kullanır

React native has support for Gesture Control programming 

https://facebook.github.io/react-native/docs/gesture-responder-system.html 

you can also interface the react portion of code with the existing JAVA code for the app which you have already written 


https://facebook.github.io/react-native/docs/integration-with-existing-apps.html 

Ve

+1

Windows, Mac ve Linux'ta çoklu dokunmayı etkinleştirmek için önceden varolan bir java projesini nasıl kullanabileceğine bir örnek verebilir misiniz? Ya da bunun için neyin gerekli olacağını açıklamak. – mpyne

+0

Soru, özellikle, java tabanlı değil, başka platformlar olduğunu söyleyen java hakkında, yararlı değildir. – caiocpricci2

+0

Bunu bir masaüstü java uygulamasıyla nasıl entegre edeceğimize yönelik bir miktar yardım bile memnuniyetle karşılanacak ve ödülümüzü alacaktır. Bağlantı, bize başlamak için bilgi çok kısa. – vextorspace

1

çözüm bize oldu yararlı olup olmadığını cevabı kabul edin e TUIO ve kendi Multi-Touch kitaplığımızı kullanın. Hile TUIOClient başlıyor ve bir TUIO sunucusu koşuyordu. TUIOClient, belirli bir bağlantı noktasını dinler ve TUIO sunucusu, işletim sistemi olaylarını TUIO istemcisinin dinlediği bağlantı noktasına iletir.

Linux için mtdev2tuio sunucusunu (çıkış köprüsü) kullandım ve bir TUIO istemcisinin yanında çalıştırdım.

Örnek Akış:

1.) TUIOClient bağlantı noktasında dinleme X

2.) os olaylardan noktası x TUIO olayları iletme TUIOServer y

Linux:

1.) yeni TUIOClient (3333)

2.) ./mtdev2tuio/dev/giriş/event5 osc.udp: //127.0.0.1: 3333

Çözüm ideal değil, çalışır ve bir TUIO sunucusu (Çıkış Köprüsü) çalışıyorsa, herhangi bir cihazda çoklu dokunmayı desteklemelidir. Bir başka olumsuz yanı dokunuşları yakalamak ve onları jestlere göre yorumlamaktır. Ayrıca, nasıl geliştirildiğine bağlı olarak, bunu farklı çerçevelerde nasıl kullandığınızı belirtir. Bizimki Swing/JavaFX'te kullanılmalıdır.

+0

Artı tarafta, ne tür hareketler istediğinizi yaratma özgürlüğü sağlar! – vextorspace

İlgili konular