overridetab.html

来自「java类库详细讲解」· HTML 代码 · 共 113 行

HTML
113
字号
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Moving the Focus with the TAB key in a JTextArea
(Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<STYLE TYPE="text/css">
<!--     CODE {font-family: Courier, Monospace;          font-size: 12pt}    PRE {font-family: Courier, Monospace;         font-size: 11pt}    BODY {font-size: 10pt}    -->
</STYLE>
</HEAD>
<BODY>
<TR>
<TD></TD>
</TR>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="../almanac14a.jpg"></A></TD><TD VALIGN="MIDDLE">
<H1>The Java Developers Almanac 1.4</H1>
    Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
    </TD>
</TR>
</TABLE>
<HR>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
<DIV ALIGN="LEFT">
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="3"><A HREF="../../index.html">Home</A>
:
<A HREF="../index.html">List of Packages</A>
:
<B><A HREF="../javax.swing.text/pkg.html">javax.swing.text</A></B><font color="#666666" SIZE="-1">
        &nbsp;[ examples]
        </font></FONT>
</DIV>
<P></P>
  
<h3>
    e895.  
    Moving the Focus with the TAB key in a JTextArea</h3>

By default, typing TAB in a <code>JTextArea</code> inserts a TAB character.
This example demonstrates how to modify the behavior so that
typing TAB moves the focus to the next focusable component.

<p></p> Rather than try to find the input map or keymap with the TAB
binding and remove it, it is better to add an overriding key binding
that will move the focus. The reason is that the location of the
default TAB binding might change in some future version.


<pre>
    JTextArea component = new JTextArea();
    
    /*
    // Add keystrokes
    component.getInputMap(JComponent.WHEN_FOCUSED).put(
        KeyStroke.getKeyStroke("pressed TAB"), nextFocusAction.getValue(Action.NAME));
    component.getInputMap(JComponent.WHEN_FOCUSED).put(
        KeyStroke.getKeyStroke("shift pressed TAB"), prevFocusAction.getValue(Action.NAME));
    */
    
    // Add actions
    component.getActionMap().put(nextFocusAction.getValue(Action.NAME), nextFocusAction);
    component.getActionMap().put(prevFocusAction.getValue(Action.NAME), prevFocusAction);
    
    // The actions
    public Action nextFocusAction = new AbstractAction("Move Focus Forwards") {
        public void actionPerformed(ActionEvent evt) {
            ((Component)evt.getSource()).transferFocus();
        }
    };
    public Action prevFocusAction = new AbstractAction("Move Focus Backwards") {
        public void actionPerformed(ActionEvent evt) {
            ((Component)evt.getSource()).transferFocusBackward();
        }
    };
</pre>

<P></P>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
&copy; 2002 Addison-Wesley.
</FONT></FONT></TD>
</TR>
</TABLE>
<br>
<hr>
<FORM method="get" action="/cgi-bin/search/find.pl">
<table width="100%">
<tr>
<b>Search</b>: 
<INPUT size="40" name="words" type="text"><INPUT value="Search" name="submit" type="submit">
</tr>
<tr>
<font size="-1">
&nbsp;&nbsp;&nbsp;&nbsp;(e.g. "cache", "parse xml dom", "java.lang.String", "java.lang.String.substring", "String.substring", "substring")
</font>
</tr>
</table>
</FORM>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?