Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
swt-jface:ccombo-focus 2007/11/15 10:56 | swt-jface:ccombo-focus 2020/01/22 20:59 aktuell | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== CCombo, Focus-Problem ====== | + | [[swt-jface:swt-jface|Java - SWT/JFace]]\\ |
- | Wenn einer CCombo ein KeyListener angehängt wird, funktioniert die Focus-Weiterleitung mit den Tasten Tab und Shift-Tabe nicht mehr. Folgende Lösung beseitigt das Problem zumindest unter Windows weitgehend (eine Anpassung für andere Systeme sollte möglich sein; lediglich Shift-Tab funktioniert nicht perfekt): | + | ====== CCombo, Focus-Problem, Eclipse 3.3 ====== |
+ | Wenn einer CCombo ein KeyListener angehängt wird, funktioniert die Focus-Weiterleitung mit den Tasten Tab und Shift-Tabe nicht mehr. Folgende Lösung beseitigt das Problem zumindest unter Windows weitgehend (eine Anpassung für andere Systeme sollte möglich sein; lediglich Shift-Tab funktioniert nicht perfekt):\\ | ||
+ | \\ | ||
+ | <html> | ||
+ | <script type="text/javascript"><!-- | ||
+ | google_ad_client="pub-9681858985507948"; | ||
+ | google_ad_width = 468; | ||
+ | google_ad_height = 60; | ||
+ | google_ad_format = "468x60_as"; | ||
+ | google_ad_type = "text"; | ||
+ | google_ad_channel = ""; | ||
+ | google_color_border = "cccccc"; | ||
+ | google_color_bg = "FFFFFF"; | ||
+ | google_color_link = "1d2d8c"; | ||
+ | google_color_text = "000000"; | ||
+ | google_color_url = "1d2d8c"; | ||
+ | //--> | ||
+ | </script> | ||
+ | <script type="text/javascript" | ||
+ | src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> | ||
+ | </script> | ||
+ | </html> | ||
+ | \\ | ||
<code java> | <code java> | ||
CCombo myCCombo = new CCombo(composite, SWT.BORDER); | CCombo myCCombo = new CCombo(composite, SWT.BORDER); | ||
- | // Keine Funktionalität, verursacht aber das Fehlferhalten: | + | // Keine Funktionalität, verursacht aber das Fehlverhalten: |
- | myCCombo.addKeyListener(new KeyListener(){ | + | myCCombo.addKeyListener(new KeyListener() { |
public void keyPressed(KeyEvent e){ | public void keyPressed(KeyEvent e){ | ||
Zeile 21: | Zeile 43: | ||
// Ohne diesen Listener ist es nicht möglich das Control mit Shift-Tab zu verlassen | // Ohne diesen Listener ist es nicht möglich das Control mit Shift-Tab zu verlassen | ||
public void keyTraversed(TraverseEvent e) { | public void keyTraversed(TraverseEvent e) { | ||
- | System.out.println("keyTraverse "+e.getSource()); | + | if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS){ |
- | if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS){ | + | myCCombo.getShell().setFocus(); |
- | myCCombo.getShell().setFocus(); | + | } |
- | } | + | |
}}); | }}); | ||