Java Tutorial/SWT/FocusEvent

Материал из Java эксперт
Перейти к: навигация, поиск

Prevent Tab from traversing out of a control

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.events.TraverseEvent; import org.eclipse.swt.events.TraverseListener; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class ControlTabTransversing {

 public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setLayout(new RowLayout());
   
   Text text1 = new Text(shell, SWT.SINGLE|SWT.BORDER);
   text1.setText("Can"t Traverse");
   text1.addTraverseListener(new TraverseListener() {
     public void keyTraversed(TraverseEvent e) {
       switch (e.detail) {
       case SWT.TRAVERSE_TAB_NEXT:
       case SWT.TRAVERSE_TAB_PREVIOUS: {
         e.doit = false;
       }
       }
     }
   });
   Text text2 = new Text(shell, SWT.SINGLE|SWT.BORDER);
   text2.setText("Can Traverse");
   shell.pack();
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}</source>





Set Tab list for focus transfer

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class TabListFocusTransfer {

 public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setLayout(new RowLayout());
   Button b1 = new Button(shell, SWT.PUSH);
   b1.setText("1");
   Button b2 = new Button(shell, SWT.RADIO);
   b2.setText("2");
   Button b3 = new Button(shell, SWT.RADIO);
   b3.setText("3");
   Button b4 = new Button(shell, SWT.RADIO);
   b4.setText("4");
   Button b5 = new Button(shell, SWT.PUSH);
   b5.setText("5");
   Control[] tabList1 = new Control[] { b2, b1, b3, b5, b4 };
   shell.setTabList(tabList1);
   shell.pack();
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}</source>