⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createcmd.htm

📁 这个压缩包里的都是超级经典的java例子
💻 HTM
字号:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Creating a Custom Editing Command for a JTextComponent (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">
<META CONTENT="no-cache" HTTP-EQUIV="Pragma">
<LINK href="/almanac.css" media="screen" type="text/css" rel="stylesheet">
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
</TABLE>
<br>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top">
<h1>The Java Developers Almanac 1.4</h1>
<br>
        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>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD valign="top"><script type="text/javascript">
<!--
google_ad_client = "pub-6001183370374757";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_channel = "4777242811";
google_ad_type = "text_image";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "6666CC";
google_color_url = "6666CC";
google_color_text = "000000";
//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></TD><TD>&nbsp;&nbsp;&nbsp;</TD><TD valign="top">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
    &gt;
    <A HREF="../index.html">List of Packages</A>
    &gt;

    
    <A HREF="../javax.swing.text/pkg.html">javax.swing.text</A><font color="#666666" class="xsmall-font">
        &nbsp;[49 examples]
    </font>
        &gt;
        <B><A HREF="../javax.swing.text/pkg.html#Actions and Key Bindings">Actions and Key Bindings</A></B><font color="#666666" class="xsmall-font">
            &nbsp;[5 examples]
            </font>
</DIV><P>
  <h3>e1002. Creating a Custom Editing Command for a JTextComponent</h3>

This example demonstrates how to implement an editing command.
There are two steps when creating a custom command.
The first is to create an action object that executes the
desired functionality and then installs the action object 
in the component. The second is to bind a keystroke to the action
object using an inputmap.

<P> Text component actions should extend from <code>TextAction</code>.
<code>TextAction</code> has a convenience method for finding the appropriate
text component on which to operate.

<P> This example implements a <font color="#0066ff"><i>Lowercase</i></font> command that converts
characters to lowercase.  If the selection is empty, the command
converts the character following the caret and then moves the caret
forward one space.  If the selection is not empty, the command
converts the characters in the selection.


<pre>    JTextArea comp = new JTextArea();
    
    // Bind F2 to the lowercase action
    String actionName = <font color="#0066ff"><i>"Lowercase"</i></font>;
    comp.getInputMap().put(KeyStroke.getKeyStroke(<font color="#0066ff"><i>"F2"</i></font>), actionName);
    
    // Install the action
    comp.getActionMap().put(actionName,
        new TextAction(actionName) {
            public void actionPerformed(ActionEvent evt) {
                lowercaseSelection(getTextComponent(evt));
            }
        }
    );
    
    public static void lowercaseSelection(JTextComponent comp) {
        if (comp.getSelectionStart() == comp.getSelectionEnd()) {
            // There is no selection, only a caret
            if (comp.getCaretPosition() &lt; comp.getDocument().getLength()) {
                // The caret must be at least one position left of the end
                try {
                    int pos = comp.getCaretPosition();
                    Document doc = comp.getDocument();
                    String str = doc.getText(pos, 1).toLowerCase();
    
                    doc.remove(pos, 1);
                    doc.insertString(pos, str, null);
                    comp.moveCaretPosition(pos+1);
                } catch (BadLocationException e) {
                }
            }
        } else {
            // There is a selection
            int s = comp.getSelectionStart();
            int e = comp.getSelectionEnd();
    
            comp.replaceSelection(comp.getSelectedText().toLowerCase());
            comp.select(s, e);
        }
    }
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
            &nbsp;<b>Related Examples</b></font></td>
</tr>
</table>


e1001. <a class="eglink" href="OverrideDefAction.html?l=rel">
    Overriding the Default Action of a JTextComponent
</a>
<br>

e1003. <a class="eglink" href="OverrideKey.html?l=rel">
    Overriding a Few Default Typed Key Bindings in a JTextComponent
</a>
<br>

e1004. <a class="eglink" href="OverrideKey2.html?l=rel">
    Overriding Many Default Typed Key Bindings in a JTextComponent
</a>
<br>

e1005. <a class="eglink" href="ListTextKeys.html?l=rel">
    Listing the Key Bindings in a JTextComponent Keymap
</a>
<br>


<table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td align="left">
<br>
        See also: 
<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Caret%20and%20Selection">
    Caret and Selection
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Events">
    Events
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JEditorPane">
    JEditorPane
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JFormattedTextField">
    JFormattedTextField
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextArea">
    JTextArea
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextComponent">
    JTextComponent
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextField">
    JTextField
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#JTextPane">
    JTextPane
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/javax.swing.text/pkg.html?l=rel#Styles">
    Styles
</a>&nbsp;&nbsp;

</td>
</tr>
</table>

<br>

<br>
<FONT class="xsmall-font">
&copy; 2002 Addison-Wesley.
</FONT></TD><TD>&nbsp;&nbsp;&nbsp;</TD><TD valign="top"><A href="http://compositesw.com/devzone?ref=javaalmanac"><IMG alt="Click Here" height="600" width="120" border="0" src="/csw_oad_120x600_final.gif"></A></TD>
</TR>
</TABLE>
</BODY>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META CONTENT="NO-CACHE" HTTP-EQUIV="PRAGMA">
</HEAD>
</HTML>

⌨️ 快捷键说明

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