ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
366
366
EMPFEHLEN
-
Hallo,
ich experementiere grade an einer Lösung, mit der ToolTips auf einem Touchscreen-Monitor (PC) benutzt werden können.
Das Problem ist in der Methode mousePressed(MouseEvent e) des ToolTipManagers - diese schließt das ToolTip, wird jedoch stets aufgerufen alsbald man da was mit Finger anvisiert. Die eigentliche Action wird erst beim Loslassen ausgelöst, so gesehen wäre es kein Widerspruch.
Forgender Code entfernt den Original-TooltipManager und setzt einen neuen, mit TT im TS.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
MouseInputListener milLabel = new MouseInputAdapter(){ @Override public void mouseEntered(MouseEvent event) { System.err.println("mouseEntered"); ToolTipManager.sharedInstance().mouseEntered(event); } @Override public void mouseExited(MouseEvent event) { System.err.println("mouseExited"); ToolTipManager.sharedInstance().mouseExited(event); } @Override public void mousePressed(MouseEvent event) { System.err.println("mousePressed"); // ToolTipManager.sharedInstance().mouseExited(event); } @Override public void mouseDragged(MouseEvent event) { System.err.println("mouseDragged"); ToolTipManager.sharedInstance().mouseDragged(event); } @Override public void mouseMoved(MouseEvent event) { System.err.println("mouseMoved"); ToolTipManager.sharedInstance().mouseMoved(event); } // @Override // public void mouseReleased(MouseEvent event) { // System.err.println("mouseReleased"); // ToolTipManager.sharedInstance().mousePressed(event); // } }; for(MouseListener l : label.getMouseListeners()){ System.err.println("MouseListener:\t" + l.getClass().getCanonicalName()); label.removeMouseListener(l); } for(MouseMotionListener l : label.getMouseMotionListeners()){ System.err.println("MouseMotionListener:\t" + l.getClass().getCanonicalName()); label.removeMouseMotionListener(l); } label.addMouseListener(milLabel); label.addMouseMotionListener(milLabel);
Diese Lösung funktioniert, muß allerdings für jede Komponente erfolgen (alte löschen, neue setzen).
Mich würde eine Möglichkeit interessieren diesen Tausch zentral und an nur einer Stelle für alle Komponenten der Applikation zu realisieren.
Oder es gibt auch andere Wege zur Problemlösung - die wären auch mehr als willkommen.
-
27.09.11 22:40 #2
- Registriert seit
- Jun 2009
- Beiträge
- 870
1. Touchscreen-support für Java ist noch nicht umgesetzt, d.h. es wird immer eine Maus imitiert.
2. Nutze einen (transparenten) JComponent, der über allem Inhalt liegt und modifiziere ihn so, dass er die MouseEvents unter bestimmten Umständen nicht weiter gibt
2.a) Nutze Java 7 und JLayer. Lege ein JLayer über den gesamten Inhalt des Fensters
2.b) Modifiziere das JLayeredPane deines RootContainersCode bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
Ähnliche Themen
-
Touchscreen für die Küche
Von gordonk im Forum HardwareAntworten: 9Letzter Beitrag: 15.10.09, 13:41 -
Touchscreen Panel PC
Von Kimex08 im Forum HardwareAntworten: 1Letzter Beitrag: 26.05.09, 08:28 -
Scrollbar für Touchscreen
Von Choe im Forum JavaAntworten: 1Letzter Beitrag: 15.01.09, 11:41 -
Touchscreen-PC-Monitore ab 17''
Von 3DVisionX im Forum HardwareAntworten: 1Letzter Beitrag: 30.11.07, 17:22 -
Touchscreen - Anschluss an beliebigen PC
Von g-zus im Forum HardwareAntworten: 5Letzter Beitrag: 14.01.05, 19:46





Zitieren
Login





