Hinzufügen von Touch-Gesten zur Legacy-Swing-Anwendung

8

Ich habe eine Legacy-Swing-Anwendung, der ich Berührungsgesten hinzufügen muss, insbesondere zum Zoomen zoomen und berühren und ziehen.

Ich habe den SwingNode von JDK 8 ausprobiert und kann die Swing-Anwendung dort ausführen, aber die Display-Leistung wurde um mehr als 50% reduziert, was nicht funktioniert. SwingTextureRenderer in MT4J hat das gleiche Problem und das ist, ohne Touch-Ereignisse als Mausereignisse erneut zu versenden.

Ich dachte über einen Glasscheibenansatz nach, bei dem eine JavaFX-Schicht oben verwendet wird und die Berührungsereignisse erfasst werden und versucht wird, sie als Mausereignisse an die Swing-App darunter zu senden.

Hat jemand einen alternativen Ansatz? Die Zielplattform ist Windows 8.

Bounty kommt, sobald Stackoverflow es öffnet. Ich brauche das ziemlich schnell.

BEARBEITEN:

Hier ist, was ich mit SwingNode versucht habe (das Redispatch der Maus hat nicht funktioniert). Der SwingNode-Kram könnte eine Ablenkung von der besten Lösung sein. Ignorieren Sie dies, wenn Sie eine bessere Idee haben, den Swing zu verstehen:

%Vor%     
davidethell 06.02.2014, 05:05
quelle

2 Antworten

0

hmm ... das ist hart, aber es gibt eine Chance.

Ich würde mehrere MouseListener -Klassen erstellen (relativ zur Anzahl der Mausereignisse, die Sie aufnehmen möchten) und dann eine Art System erstellen, um bestimmte Anpassungen zu erkennen, z. (Zoom)

1. Listener:

%Vor%

Zweiter Listener

%Vor%

Haupt-Handler

%Vor%

Und dann tun Sie das einfach, um es dem Fenster hinzuzufügen:

%Vor%

Ich hoffe, Sie finden einen Weg.

    
user3200756 15.02.2014 11:24
quelle
0

Für den Pinch-Zoom:

Probieren Sie den GestureMagnificationListener von guigarage.com. Es bietet eine Methode:

%Vor%     
trainrobbery 24.10.2017 21:36
quelle

Tags und Links