2017-03-07 21 views
14

Cố gắng thêm đa chạm vào một dự án java nền tảng chéo hiện có. Tôi đã xem xét theo 2 cách. Có một số cách khác nhưng chúng dường như không phải là nền tảng chéo hoặc cần phần mềm đặc biệt.Ứng dụng java đa nền tảng đa chạm (Windows, Mac và Linux (Ubuntu) (có thể là Android))

  1. JavaFx - Thao tác cử chỉ/chạm trên windows và osx nhưng không hoạt động trên Ubuntu 16.04.
  2. MT4J - Có vẻ sẽ bị tạm ngừng và/hoặc không được hỗ trợ.

Kết luận của tôi ở trên có thể sai và sẵn sàng thử lại cho phản hồi tốt.

Có cách nào để đạt được ứng dụng java đa cảm ứng đa nền tảng không? Dường như tôi có thể cần phải viết một số mã nguồn gốc và thêm nó thông qua JNI mà có vẻ như rất nhiều công việc. Bất kỳ ý tưởng nào về dòng suy nghĩ này ?. Thức ăn trở lại được đánh giá cao, Cảm ơn.

Tiếp tục 1.0:

Tôi đã giữ điều tra sử dụng JavaFX trên Linux chủ yếu là vì Hạn chế duy nhất ngay bây giờ cho việc sử dụng JavaFX là hỗ trợ cảm ứng đa Linux. Những gì tôi đã phát hiện ra là JavaFx multitouch hoạt động trên các bản phân phối Linux dành cho các hệ thống nhúng (ví dụ: Raspberry Pi, có lẽ là thành thật nhất). Những gì tôi có thể thu thập từ này là nếu OpenJFX thể được biên dịch cho hệ thống nhúng sau đó phiên bản nhúng của OpenJFX sử dụng các trình điều khiển thiết bị trực tiếp để có được đầu vào (/ dev/input /) thay vì X11/GTK. Kể từ khi Linux dists cho máy tính để bàn sử dụng X11/GTK cho có đầu vào vào môi trường máy tính để bàn JavaFx là không thể có được những sự kiện này do thiếu sự hỗ trợ.

Tôi không muốn sử dụng một liên kết nhưng ở đây nó là

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

Liên kết ở trên, dường như tôi tại-nhất, để được về soạn thảo một phiên bản của OpenJFX cho các hệ thống x86 (nên làm việc x64) trong đó sử dụng cách hệ thống nhúng để nhận thiết bị đầu vào. Tôi có thể biên dịch phiên bản này nhưng khi tôi chạy nó xuất hiện để sụp đổ máy tính để bàn và đôi khi nó rời khỏi ứng dụng Java lên. Khi ứng dụng Java còn lại chạy các sự kiện cảm ứng hoạt động nhưng kết quả cuối cùng này không thể chấp nhận được vì nó không thể đoán trước được và có vẻ như làm hỏng trình quản lý máy tính để bàn (Yêu cầu khởi động lại máy tính để bàn sau này).

Tiếp tục 1.1:

Tôi nhìn vào sử dụng TUIO nhưng không ai trong số các chương trình mẫu làm việc. Họ nói rằng bạn cần một thiết bị kích hoạt TUIO mà có thể là một tiêu chuẩn đặc biệt/protocal thiết bị của tôi không sử dụng. Khá nhiều chỉ cần tải về bản demo TUIO và chạy nó trên một màn hình cảm ứng mà không có may mắn.

Tôi cũng nghĩ về gắn xev để cửa sổ ứng dụng java của tôi và streaming các kết quả vào một tập tin để sau được đọc bởi các ứng dụng java và phân tích thành các sự kiện java. Điều này có vẻ khá hacky và không chắc chắn nếu nó thậm chí sẽ làm việc. Nếu ai đó có thể đưa ra khả năng làm việc này tôi có thể thử nó. Nhưng vào thời điểm này nó có vẻ giống như cách để làm việc nhiều.

Tiếp tục 1.2:

Tìm thấy https://bugs.openjdk.java.net/browse/JDK-8090954 này và nghĩ rằng nó là thú vị.

Đăng giải pháp dưới đây.

Trả lời

4

Gần đây đã có nhiều nền tảng máy phát điện dự án

Phản ứng tự nhiên, Cordova là một số những

Tôi đã sử dụng React Native Nó sử dụng javascript mã được biên soạn xuống theo nền tảng

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 

Và xin vui lòng chấp nhận câu trả lời nếu nó là hữu ích

+1

Bạn có thể đưa ra ví dụ về cách người ta có thể sử dụng tính năng này để thực hiện dự án java từ trước để bật đa chạm trên windows, mac và linux không? Hoặc giải thích những gì sẽ được yêu cầu để làm như vậy. – mpyne

+0

Câu hỏi đặc biệt về java, nói rằng có những nền tảng khác, không dựa trên java, không hữu ích. – caiocpricci2

+0

Ngay cả một chút trợ giúp về cách chúng tôi tích hợp điều này với ứng dụng java trên máy tính để bàn sẽ được đánh giá cao và nhận được tiền thưởng của tôi. Liên kết chỉ là quá ngắn trên thông tin để chúng tôi bắt đầu. – vextorspace

1

giải pháp là chúng tôi e TUIO và cuộn thư viện Multi-Touch của riêng chúng tôi. Bí quyết đã bắt đầu TUIOClient và chạy một máy chủ TUIO. Các TUIOClient lắng nghe trên một cổng nhất định và máy chủ TUIO chuyển tiếp các sự kiện OS đến cổng mà máy khách TUIO đang lắng nghe.

Tôi đã sử dụng máy chủ mtdev2tuio (cầu nối đầu ra) cho Linux và chạy nó cùng với một máy khách TUIO.

Ví dụ Lưu lượng:

1.) TUIOClient lắng nghe trên cổng x

2.) TUIOServer chuyển tiếp TUIO sự kiện để cổng x từ các sự kiện os y

Linux:

1.) new TUIOClient (3333)

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

Giải pháp không lý tưởng nhưng nó hoạt động và phải hỗ trợ cảm ứng đa điểm trên bất kỳ thiết bị nào được cung cấp có máy chủ TUIO (Cầu đầu ra) đang chạy. Nhược điểm khác là một trong những nhu cầu để nắm bắt chạm và giải thích chúng thành cử chỉ. Cũng lưu ý tùy thuộc vào cách nó được phát triển ra lệnh cho cách bạn sử dụng nó trong các khung công tác khác nhau. Chúng ta sẽ cần phải được sử dụng trong Swing/JavaFX.

+0

Về mặt tích cực, nó mang lại cho bạn sự tự do để tạo ra bất kỳ loại cử chỉ nào bạn muốn! – vextorspace

Các vấn đề liên quan