Detect when the user scrolls a text control : Text Event « SWT « Java Tutorial






Detect when the user scrolls a text control
/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors: IBM Corporation - initial API and implementation
 ******************************************************************************/
// package org.eclipse.swt.snippets;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.ScrollBar;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

/*
 * Detect when the user scrolls a text control
 * 
 * For a list of all SWT example snippets see
 * http://www.eclipse.org/swt/snippets/
 */

public class TextControlUserScroll {
  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    final Text text = new Text(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    for (int i = 0; i < 32; i++) {
      text.append(i + "-This is a line of text in a widget-" + i + "\n");
    }
    text.setSelection(0);
    Listener listener = new Listener() {
      int lastIndex = text.getTopIndex();

      public void handleEvent(Event e) {
        int index = text.getTopIndex();
        if (index != lastIndex) {
          lastIndex = index;
          System.out.println("Scrolled, topIndex=" + index);
        }
      }
    };
    /* NOTE: Only detects scrolling by the user */
    text.addListener(SWT.MouseDown, listener);
    text.addListener(SWT.MouseMove, listener);
    text.addListener(SWT.MouseUp, listener);
    text.addListener(SWT.KeyDown, listener);
    text.addListener(SWT.KeyUp, listener);
    text.addListener(SWT.Resize, listener);
    ScrollBar hBar = text.getHorizontalBar();
    if (hBar != null) {
      hBar.addListener(SWT.Selection, listener);
    }
    ScrollBar vBar = text.getVerticalBar();
    if (vBar != null) {
      vBar.addListener(SWT.Selection, listener);
    }
    shell.pack();
    Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    shell.setSize(size.x - 32, size.y / 2);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}








17.18.Text Event
17.18.1.Add focus in/out event to TextAdd focus in/out event to Text
17.18.2.Add KeyEvent listener to TextAdd KeyEvent listener to Text
17.18.3.Listen to key Traversed eventListen to key Traversed event
17.18.4.Use a regular expression to verify input(a phone number is used)Use a regular expression to verify input(a phone number is used)
17.18.5.Add events to Text: MouseDown, MouseMove, MouseUp, KeyDown, KeyUp ResizeAdd events to Text: MouseDown, MouseMove, MouseUp, KeyDown, KeyUp Resize
17.18.6.Detect when the user scrolls a text controlDetect when the user scrolls a text control
17.18.7.Verify input (format for date)Verify input (format for date)
17.18.8.Verify input (only allow digits)Verify input (only allow digits)
17.18.9.Text TraverseListener: Tab key event (override Tab behavior to traverse out of a Text)Text TraverseListener: Tab key event (override Tab behavior to traverse out of a Text)
17.18.10.Text default selection event(Return/Enter key)Text default selection event(Return/Enter key)
17.18.11.Add default selection listener to TextAdd default selection listener to Text