mousevents bei Maus und touchscreen reagieren unterschiedlich

Hallo lieber Leser,

Mein Problem:
Ich habe eine Klasse mit MouseListener und MouseMotionListener ...

Java:
public class Maus implements MouseListener, MouseMotionListener

... mit den entsprechenden Methoden mouseDragged, mouseMoved, mouseClicked, mousePressed, mouseReleased, usw. Wenn man mit einem Touchscreen arbeitet reagieren die Events anders als wenn man mit einer Maus Arbeitet.

Drückt man z.B. die linke Maustaste wird mousePressed aktiv.
Lässt man sie los wird mouseReleased aktiv.

Drückt man mit dem Finger auf den Touchscreen wird kein Event aktiv. Erst wenn wann den Finger wieder hebt werden mousePressed und mouseReleased praktisch zeitgleich aktiv.

So kann dem Nutzer (der gerade drückt) kein Feedback gegeben werden. Z.B. ein Knopf wird Optisch eingedrückt.

Ich suche also nach einer Möglichkeit zu erfahren wann der Nutzer mit seinem Finger auf dem Monitor ist.


Was ich bis jetzt versucht habe:

1. Ich habe nach einem "TouchListener" gesucht (was ich gefunden habe funktioniert glaube ich nur bei der app programmierung).

2. Ich habe in den Windows Optionen nach einer Lösung gesucht. Hier habe ich den Rechtsklick per Finger deaktiviert (hat leider nichts geholfen). Einstellungen für den Linksklick habe ich nicht gefunden.


Mein System:
Ich Arbeite Mit Win 8 64Bit und Java7.

Ich hoffe mir ist zu helfen und möchte mich schon mal Bedanken.
 
Hallo,

Ich habe biss jetzt noch keine Lösung für mein Problem gefunden; aber ich habe einen Workaround programmiert mit dem ich in der Not leben kann. Eventuell bin ich ja nicht der einzigste mit dem Problem deshalb hier der Workaround:

In der Methode mousePressed Speicher ich in dem Feld pr wann gedrückt wurde (dieser wert wird später wichtig). Anschliesend wird ermittelt ob ein Button gedrückt wurde wenn ja wird das in dem Array Para.but.k gespeichert und am ende wird neu gezeichnet -> Para.sc.repaint();

Java:
	@Override
	public void mousePressed(MouseEvent me) {
		
		pr = System.currentTimeMillis();
		
		int x = me.getX() - Para.left;
		int y = me.getY() - Para.top;
		
		for(int i = 0; i < Para.but.pos.length; i++) {
			if(x >= Para.but.pos[i] [4]) {
				if(x <= Para.but.pos[i] [6]) {
					if(y >= Para.but.pos[i] [5]) {
						if(y <= Para.but.pos[i] [7]) {
							Para.but.k[i] = true;
						}
					}
				}
			}
		}
		Para.sc.repaint();
	}


In der Methode mouseReleased rechne ich aus wie viel Zeit vergangen ist seit gedrückt wurde. Ist weniger als 10ms Zeit verstrichen speichere ich das in der lokalen variablen touch und starte einen neuen Prozess (zu diesem Prozess später mehr).
Dadurch das touch = true ist bleiben die Butten im gedrückt Modus.


Java:
	@Override
	public void mouseReleased(MouseEvent me) {
		
		pr = System.currentTimeMillis() - pr;
		
		boolean touch = false;
		if(pr < 10) {
			Thread t = new Thread(Para.but);
			t.start();
			touch = true;
		}  
	
		int x = me.getX() - Para.left;
		int y = me.getY() - Para.top;
		
		for(int i = 0; i < Para.but.pos.length; i++) {
			if(!touch) {
				Para.but.k[i] = false;
			}
			if(x >= Para.but.pos[i] [4]) {
				if(x <= Para.but.pos[i] [6]) {
					if(y >= Para.but.pos[i] [5]) {
						if(y <= Para.but.pos[i] [7]) {
							Para.but.a[i] = true;
						}
					}
				}
			}
		}
		
		Para.sc.repaint();  
	}


Hier ist die run Methode meiner Para.but Klasse. Dieser Code wird von dem Neuen Prozess ausgeführt.
Als erstes wird 200ms gewartet damit der Nutzer sieht das der Butten eingedrückt ist. Danach werden alle Butten zurückgesetzt.

Java:
	@Override
	public void run() {
		
		try {
			Thread.sleep(200);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		for(int i = 0; i < Para.but.pos.length; i++) {
			Para.but.k[i] = false;
		}
		
		Para.sc.repaint();
	}


Auf diese weise bekommt der Nutzer wenigstens nach dem drücken ein optisches Feedback.
Damit ist das Grundsätzliche Problem nicht behoben aber es funktioniert fürs erste.
Da dies nur eine Notlösung ist würde ich mich über Ideen zur Problemlösung freuen.
wenn es jemand möchte kann ich auch den Kompleten Code Hochladen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Isometrische Tileauswahl mit der Maus Java Basics - Anfänger-Themen 1
CptK Klassen Event bei gedrückter Maus immer wieder mit Pause ausführen Java Basics - Anfänger-Themen 2
CptK Klassen mouseClicked wird nicht aufgerufen, während man die Maus bewegt Java Basics - Anfänger-Themen 4
D Wie frage ich ab ob die Linke maus Taste gedrückt wurde? Java Basics - Anfänger-Themen 3
M Graphics2D Objekt mir der Maus erstellen Java Basics - Anfänger-Themen 5
T Zur Maus zoomen / Fehler bei Bilddarstellung Java Basics - Anfänger-Themen 3
J GridPane per Maus Zelle bekommen, wie? Java Basics - Anfänger-Themen 4
N Erkennen ob Linkshänder Maus Java Basics - Anfänger-Themen 4
C [Greasmonkey] Maus Coursor position setzen Java Basics - Anfänger-Themen 1
S Maus soll Programm nicht verlassen Java Basics - Anfänger-Themen 1
X Weg der Maus in px Java Basics - Anfänger-Themen 1
L Maus Click Simulation Java Basics - Anfänger-Themen 5
J Windows Maus-Zeigerbeschleunigung aktivieren/deaktivieren - Mit Java möglich? Java Basics - Anfänger-Themen 2
S Maus Position Java Basics - Anfänger-Themen 6
S java ruckelnde maus Java Basics - Anfänger-Themen 8
E Y-Position der Maus nehmen Java Basics - Anfänger-Themen 5
K Bild mit Maus innerhalb eines Rahmens bewegen Java Basics - Anfänger-Themen 5
T problem mit der maus in BlueJ Java Basics - Anfänger-Themen 14
Nicer Maus Events Java Basics - Anfänger-Themen 2
J SuM.kern.Maus gibt null obwohl initialisiert Java Basics - Anfänger-Themen 3
J den x und y Wert beim klicken der Maus ermitteln Java Basics - Anfänger-Themen 2
R Objekt mit Maus auswählen und verschieben Java Basics - Anfänger-Themen 2
S Koordinaten der Maus wiedergeben Java Basics - Anfänger-Themen 6
B GridLayout - elemente mit Maus abfragen Java Basics - Anfänger-Themen 3
Hamstinator Fenster mit Maus verschieben Java Basics - Anfänger-Themen 2
B Hilfe: Tastatureingaben werden erst nach der Maus angenommen Java Basics - Anfänger-Themen 3
C Scroll per Maus Java Basics - Anfänger-Themen 2
O Maus / Pixel Position bei mir und bei anderen. Java Basics - Anfänger-Themen 8
B träge Maus Java Basics - Anfänger-Themen 2
H2SO3- dreieck, bild --> maus klick event. Wie gehts? Java Basics - Anfänger-Themen 10
F Maus fangen Java Basics - Anfänger-Themen 9
A grafik 2d Objekte mit der Maus bewegen Java Basics - Anfänger-Themen 4
H Objekt mit Maus verschieben Java Basics - Anfänger-Themen 4
A Maus positionserkennung zu langsam Java Basics - Anfänger-Themen 4
G Maus mit java bewegen Java Basics - Anfänger-Themen 6
N Applet ruckelt solange Maus nicht in Bewegung? Java Basics - Anfänger-Themen 3
M Maus position abfragen und setzen? Java Basics - Anfänger-Themen 1
G nicht Quadratischer Maus-Klickbereich Java Basics - Anfänger-Themen 6
M Fokus mit Maus und Tastatur Java Basics - Anfänger-Themen 5
T eine zusätzliche Virtualle Maus Java Basics - Anfänger-Themen 11
E Mit der Maus Zeichenen Java Basics - Anfänger-Themen 5
DEvent Maus deaktivieren und exklusiv nur für das Hauptfenster Java Basics - Anfänger-Themen 5
E Kreis in Frame ,den man mit der Maus versetzen kann? Java Basics - Anfänger-Themen 2
B Button - auf Maus reagieren Java Basics - Anfänger-Themen 16
G Buttons mit der Maus nicht anklickbar Java Basics - Anfänger-Themen 8
B Probleme mit der maus Java Basics - Anfänger-Themen 4
M Maus und Tastatur Java Basics - Anfänger-Themen 5
G Maus+Tastatur aktionen simulieren? Java Basics - Anfänger-Themen 5
D Maus steuern Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben