You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.9 KiB
Java

Canvas (Tab Capturing Canvas)
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
/**
* This Canvas class show how to make a canvas part of the tab sequece
* so that it can be reached by pressing the tab key. It also shows
* how to prevent tab from getting focus to leave the Canvas by
* consuming the event before it gets propogated to the containing
* Window.
*/
public class TabCapturingCanvas extends Canvas {
/**
* Constructor.
*/
public TabCapturingCanvas() {
setBackground(Color.green);
// Key events must be enabled so that the canvas can consume them.
enableEvents(AWTEvent.KEY_EVENT_MASK);
} // constructor()
/**
* Override processKeyEvent so that it consumes tab key events.
* Since consumed AWT events are not delivered to listeners, tab key
* events that are delivered to this Canvas will not be dispatched
* to the Window that is listening for them, so the Window will
* never have the opportinity to respond to the tab by requesting a
* change of focus.
*/
protected void processKeyEvent(KeyEvent e) {
if (e.getKeyCode() == ' ') {
e.consume();
return;
} // if
super.processKeyEvent(e);
} // processKeyEvent(KeyEvent)
/**
* Returns whether this component can be traversed using
* Tab or Shift-Tab keyboard focus traversal. If this method
* returns "false", this component may still request the keyboard
* focus using requestFocus(), but it will not automatically
* be assigned focus during tab traversal.
*/
public boolean isFocusTraversable() {
return true;
}
public Dimension getMinimumSize() {
return new Dimension(50,50);
} // getMinimumSize()
public Dimension getPreferredSize() {
return new Dimension(50,50);
} // getPreferredSize()
} // class TabCapturingCanvas