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

📄 answers-ch5.html

📁 jsf、swing的官方指南
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><html>    <head>        <title>Answers: Writing Event Listeners (The Java&trade; Tutorials &gt; Creating a GUI with JFC/Swing &gt;            )</title><style type="text/css">    .FigureCaption   {         margin-left: 1in;         margin-right: 1in;         font-family: sans-serif;         font-size: smaller;         text-align: justify;    }    #TopBar_bl {        background: url(../../images/java_bar_bl.gif) 0 100% no-repeat;        width: 100%;        height: 60px;    }    #TopBar_br {        background: url(../../images/java_bar_br.gif) 100% 100% no-repeat;        width: 100%;        height: 60px;    }    #TopBar_tl {        background: url(../../images/java_bar_tl.gif) 0 0 no-repeat;        width: 100%;        height: 60px;    }    #TopBar_tr {        background: url(../../images/java_bar_tr.gif) 100% 0 no-repeat;        width: 100%;        height: 60px;    }    #TopBar {        background: #35556B url(../../images/java_bar.gif);        margin: 10px 10px 0 10px;        height:60px;        min-width:700px;        color: white;        font-family: sans-serif;         font-weight: bold;    }    @media print {        #BreadCrumbs, #Download {            display: none;        }    }    #TopBar_right {        line-height: 14px;        float: right;        padding-top: 2px;        padding-right: 30px;        text-align: center;    }    @media print {        #TopBar_right {            display: none;        }    }    #TopBar_right a {        font-size: 12px;        margin: 3px;        padding: 0;    }    #TopBar a:visited, #TopBar a:link {        color: white;        text-decoration: none;    }    #TopBar a:hover, #TopBar a:active  {        background-color: white;        color: #35556B;    }    #BreadCrumbs {        padding: 4px 5px 0.5em 0;        font-family: sans-serif;         float: right;    }    #BreadCrumbs a {        color: blue;    }    #BreadCrumbs a:visited, #BreadCrumbs a:link {        text-decoration: none;    }    #BreadCrumbs a:hover, #BreadCrumbs a:active {        text-decoration: underline;    }    #PageTitle {        margin: 0 5px 0.5em 0;        color: #E76F00;        font-family: sans-serif;         font-weight: bold;        font-size: 20px;    }    .LeftBar_shown {        width: 13em;        float: left;        margin-left: 10px;        margin-top: 4px;        margin-bottom: 2em;    }    @media print {        .LeftBar_shown {            display: none;        }    }    .LeftBar_hidden {        display: none;    }    #Footer {        padding-top: 10px;        padding-left: 10px;        margin-right: 10px;    }    .NavBit  {        padding: 4px 5px 0.5em 0;        font-family: sans-serif;     }    @media print {        .NavBit {            display: none;        }    }    #TagNotes {        text-align: right;        font-size: smaller;        font-family: sans-serif;     }    @media print {        #TagNotes a:visited, #TagNotes a:link {            color: #35556B;            text-decoration: none;        }    }    #Contents a, .NavBit a, #TagNotes a {        color: blue    }    #TagNotes a:visited, #TagNotes a:link,    #Contents a:visited, #Contents a:link,    .NavBit a:visited, .NavBit a:link {        text-decoration: none;    }    #TagNotes a:hover, #TagNotes a:active,       #Contents a:hover, #Contents a:active,       .NavBit a:hover, .NavBit a:active {          text-decoration: underline;    }    #Contents {        float: left;        font-family: sans-serif;     }    @media print {        #Contents {            display: none;        }    }    @media screen {        div.PrintHeaders {            display: none;        }    }    .linkLESSON, .nolinkLESSON {        margin-left: 0.5em;        text-indent: -0.5em    }    .linkAHEAD, .nolinkAHEAD, .linkQUESTIONS, .nolinkQUESTIONS   {        margin-left: 1.5em;         text-indent: -0.5em    }    .linkBHEAD, .nolinkBHEAD   {        margin-left: 2.5em;        text-indent: -0.5em    }    .linkCHEAD, .nolinkCHEAD   {        margin-left: 3.5em;        text-indent: -0.5em    }    .nolinkLESSON, .nolinkAHEAD, .nolinkBHEAD, .nolinkCHEAD,    .nolinkQUESTIONS {        font-weight: bold;        color: #E76F00;    }    .MainFlow_indented {        margin-right: 10px;        margin-left: 15em;        margin-bottom: 2em;    }    .MainFlow_wide {        margin-right: 10px;        margin-left: 10px;        margin-bottom: 2em;    }    @media print {        .MainFlow_indented, .MainFlow_wide {            padding-top: 0;            margin-top: 10px;            margin-right: 10px;            margin-left: 0;        }    }    h3, h4, h5 {        color: #E76F00;        font-family: sans-serif;    }    #ToggleLeft {        display: none;    }    /t</style>    </head><body>    <div id=TopBar> <div id=TopBar_tr> <div id=TopBar_tl> <div id=TopBar_br> <div id=TopBar_bl>                         <div id=TopBar_right>                             <a target="_blank"                                href="http://java.sun.com/javase/6/download.jsp">Download                                the JDK</a>                            <br>                            <a href="../../search.html" target="_blank">Search the                                Tutorials</a>                        </div>                            <div class=PrintHeaders>                                <b>Trail:</b> Creating a GUI with JFC/Swing                            </div>                    </div> </div> </div> </div> </div>    <div class=MainFlow_wide>        <span id=BreadCrumbs>            <a href=../../index.html target=_top>Home Page</a>            &gt;            <a href=../index.html target=_top>Creating a GUI with JFC/Swing</a>        </span>        <div class=NavBit>            <a href=../TOC.html>&laquo; Previous</a>&nbsp;&bull;&nbsp;<a href=../TOC.html>TOC</a>        </div>        <div id=PageTitle>Answers: Writing Event Listeners</div>        <blockquote></blockquote>Use this lesson&#146;s tables, the <A HREF="../components/index.html">componenthow-to sections</A> and the <A HREF="../events/handling.html">eventlisteners how-to sections</A> to complete these questions andexercises.<H3>Questions</H3><BLOCKQUOTE>  <P><FONT COLOR="#ff0000">Question 1:</FONT> What listener would  you implement to be notified when a particular component has  appeared on screen? What method tells you this information?<BR>  <FONT COLOR="#009900">Answer 1:</FONT> You would register a   <code>ComponentListener</code> on the component. The   <code>componentShown</code> method.  This method is called when  the window is first displayed or is deiconified.  </P>  <P><FONT COLOR="#ff0000">Question 2:</FONT> What listener would  you implement to be notified when the user has finished editing  a text field by pressing Enter? What listener would you implement  to be notified as each character is typed into a text field?  Note that you should not implement a general-purpose key listener,  but a listener specific to text.<BR>  <FONT COLOR="#009900">Answer 2:</FONT> To be notified when the user     presses Enter, you would register an     <code>ActionListener</code> on the text field;     the <code>actionPerformed</code> method is called when the user types    Enter.  Note that the Enter character is not part of    the resulting string. To be notified as each character     is typed, you would register a <code>DocumentListener</code>     on the text field's    <code>Document</code>.  The <code>insertUpdate</code> method     is then called as each    character is typed.   Note that this is not the correct way    to implement input validation.  For that behavior you should    check out the     <A HREF="../misc/focus.html#inputverificationapi">Input Verification API</A>     section in     <A HREF="../misc/focus.html">How to Use the Focus Subsystem</A>.  </P>  <P><FONT COLOR="#ff0000">Question 3:</FONT> What listener would  you implement to be notified when a spinner&#146;s value has  changed? How would you get the spinner&#146;s new value?<BR>  <FONT COLOR="#009900">Answer 3:</FONT> To be notified when the value   has changed, you would register a   <code>ChangeListener</code> on the spinner. You would get   the new value through the   event's source in the <code>stateChanged</code> method.    The following code snippet shows how this could be done:<blockquote><pre>public void stateChanged(ChangeEvent e) {    JSpinner mySpinner = (JSpinner)(e.getSource());    SpinnerNumberModel model = (SpinnerNumberModel)(mySpinner.getModel());    Number currentValue = model.getNumber();    ...}</pre></blockquote>  <P><FONT COLOR="#ff0000">Question 4:</FONT> The default behavior  for the focus subsystem is to  consume the focus traversal keys, such as Tab and Shift Tab.  Say you want to prevent this behavior in one of your application&#146;s  components. How would you accomplish this?<BR>  <FONT COLOR="#009900">Answer 4:</FONT>   You call <code>setFocusTraversalKeysEnabled(false)</code> on that particular   component.  Note that you must then handle focus traversal manually.   See     <A HREF="../events/keylistener.html">How to Write a Key Listener</A>  and     <A HREF="../misc/focus.html">How to Use the Focus Subsystem</A> for more information.  </P></BLOCKQUOTE><H3>Exercises</H3><BLOCKQUOTE>  <P><FONT COLOR="#ff0000">Exercise 1.</FONT> Take the <a target="source" href="../events/examples/Beeper.java"><font color="#bb000f"><code>Beeper.java</code></font></a><a href="../events/examples/Beeper.java"><img src="../../images/sourceIcon.gif" width=11 height=11 border=0 align="ABSMIDDLE" alt="(in a .java source file)"></a> example and add a text field. Implement it so that when  the user has finishing entering data, the system beeps.<BR>  <FONT COLOR="#009900">Answer 1:</FONT> See <a target="source" href="examples/Beeper1.java"><font color="#bb000f"><code>Beeper1.java</code></font></a><a href="examples/Beeper1.java"><img src="../../images/sourceIcon.gif" width=11 height=11 border=0 align="ABSMIDDLE" alt="(in a .java source file)"></a>   <P><FONT COLOR="#ff0000">Exercise 2.</FONT> Take the <a target="source" href="../events/examples/Beeper.java"><font color="#bb000f"><code>Beeper.java</code></font></a><a href="../events/examples/Beeper.java"><img src="../../images/sourceIcon.gif" width=11 height=11 border=0 align="ABSMIDDLE" alt="(in a .java source file)"></a>   example and add a selectable component that allows the  user to enter a number from 1 to 10. For example, you can use  a combo box, a set of radio buttons, or a spinner. Implement  it so that when the user has selected the number, the system  beeps that many times.<BR>  <FONT COLOR="#009900">Answer 2:</FONT> See <a target="source" href="examples/Beeper2.java"><font color="#bb000f"><code>Beeper2.java</code></font></a><a href="examples/Beeper2.java"><img src="../../images/sourceIcon.gif" width=11 height=11 border=0 align="ABSMIDDLE" alt="(in a .java source file)"></a> </BLOCKQUOTE>        </blockquote>    </div>    <div id=Footer>        <span class=NavBit>            <a href=../TOC.html>&laquo; Previous</a>            &bull;            <a href=../TOC.html>TOC</a>        </span><div id=TagNotes>    Problems with the examples? Try <a target="_blank"        href=../../information/run-examples.html>Compiling and Running        the Examples: FAQs</a>.    <br>    Complaints? Compliments? Suggestions? <a target="_blank"        href="http://developer.sun.com/contact/tutorial_feedback.jsp">Give    us your feedback</a>.<br><br>    <a target="_blank" href="../../information/copyright.html">Copyright</a>    1995-2006 Sun Microsystems, Inc.  All rights reserved.    <span id=Download></span></div>     </div>    <div class=PrintHeaders>        <b>Previous page:</b> Questions and Exercises: Writing Event Listeners    </div>    </body></html> 

⌨️ 快捷键说明

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