﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-忆风-随笔分类-IDE</title><link>http://www.blogjava.net/yifeng/category/34014.html</link><description>光是知道是不够的，必须要加以应用；光是希望是不够的，非去做不可。</description><language>zh-cn</language><lastBuildDate>Sun, 13 Dec 2009 02:18:37 GMT</lastBuildDate><pubDate>Sun, 13 Dec 2009 02:18:37 GMT</pubDate><ttl>60</ttl><item><title>IntelliJ IDEA 9.0 Released</title><link>http://www.blogjava.net/yifeng/archive/2009/12/10/305363.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Thu, 10 Dec 2009 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2009/12/10/305363.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/305363.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2009/12/10/305363.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/305363.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/305363.html</trackback:ping><description><![CDATA[<span style="border-collapse: collapse; color: #3f3f3f; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 16px; ">
<h2 style="padding-bottom: 5px; margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; font-size: 22px; color: #004c88; ">What's New in Version 9</h2>
<p style="margin-top: 10px; margin-bottom: 15px; ">This release delivers many major updates to IntelliJ IDEA including better performance, support for Java EE 6 and other new frameworks, lots of productivity improvements in the editor, a more streamlined user interface and much more.</p>
<table border="0" style="width: 535px; height: 42px; ">
    <tbody>
        <tr>
            <td>&nbsp;
            <ul style="margin-left: 10px; ">
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Faster_Environment" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Faster Environment</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Improved_Code_Understanding" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Improved Code Understanding</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Cleaner_More_Productive_Coding" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Cleaner, More Productive Coding</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#More_Efficient_User_Interface" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>More Efficient User Interface</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#More_Flexible_Project_Structure" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>More Flexible Project Structure</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Preliminary_Java_7_Features_Support" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Preliminary Java 7 Features Support</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Java_EE_6_Support" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Java EE 6 Support</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Improved_Groovy_support" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Improved Groovy support</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Extended_Polyglot_Arsenal" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Extended Polyglot Arsenal</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#New_Web_Frameworks_Support" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>New Web Frameworks Support</u></a></li>
            </ul>
            </td>
            <td>&nbsp;
            <ul style="margin-left: 10px; ">
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#OSGi_Application_Development" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>OSGi Application Development</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Enhanced_Maven_Support" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Enhanced Maven Support</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Android_Development" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Android Development</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Better_JavaScript_and_HTML" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Better JavaScript and HTML</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Flex_Development" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Flex Development</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Context_Management" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Context Management</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#UML_Support" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>UML Support</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Version_Control_Integration" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Version Control Integration</u></a></li>
                <li class="lead" style="padding-left: 0px; padding-bottom: 15px; "><a href="http://www.intellij.org.cn/portal/index.php?option=com_content&amp;task=view&amp;id=318&amp;Itemid=1#Other_Interesting_Things" class="on_page" style="text-decoration: none; color: #ee7a00; "><u>Other Interesting Things</u></a></li>
            </ul>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin-top: 10px; margin-bottom: 15px; ">Please visit&nbsp;<a href="http://www.jetbrains.com/idea/whatsnew/index.html" style="text-decoration: none; color: #ee7a00; ">http://www.jetbrains.com/idea/whatsnew/index.html</a>&nbsp;for detail!</p>
<div><br />
</div>
</span>
<img src ="http://www.blogjava.net/yifeng/aggbug/305363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2009-12-10 09:24 <a href="http://www.blogjava.net/yifeng/archive/2009/12/10/305363.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IntelliJ IDEA Completion features</title><link>http://www.blogjava.net/yifeng/archive/2009/10/28/300007.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 28 Oct 2009 01:19:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2009/10/28/300007.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/300007.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2009/10/28/300007.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/300007.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/300007.html</trackback:ping><description><![CDATA[<div><br />
</div>
<div><span  style="font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17px; ">
<h1 id="title-heading" class="pagetitle" style="line-height: 2; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 18pt; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #003366; width: 1401px; "><a href="http://www.jetbrains.net/confluence/display/IDEADEV" style="color: #003366; text-decoration: none; "><img class="logo space" src="http://www.jetbrains.net/confluence/download/userResources/IDEADEV/logo" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; float: left; margin-top: 0px; margin-right: 0.3em; margin-bottom: 0px; margin-left: 0px; height: 2em; " /></a><span id="title-text"><a href="http://www.jetbrains.net/confluence/display/IDEADEV/Completion+features" style="color: #336699; text-decoration: none; border-bottom-color: #003366; ">Completion features</a></span></h1>
<div id="content" class="page view" style="clear: left; ">
<div class="page-metadata" style="color: #666666; font-size: 0.9em; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; ">Added by&nbsp;<a href="http://www.jetbrains.net/confluence/display/~peter" style="color: #666666; font-style: normal; ">Peter Gromov</a>, last edited by&nbsp;<a href="http://www.jetbrains.net/confluence/display/~peter" style="color: #666666; font-style: normal; ">Peter Gromov</a>&nbsp;on Sep 22, 2009 &nbsp;(<a class="noprint" href="http://www.jetbrains.net/confluence/pages/diffpages.action?pageId=17924246&amp;originalId=17924309" style="color: #666666; font-style: normal; ">view change</a>)</div>
<div class="wiki-content" style="font-size: 10pt; line-height: 13pt; ">
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Feature list isn't complete, this page is subject to change.</p>
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">There are three completion types:</p>
<table class="confluenceTable" style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; clear: left; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; border-collapse: collapse; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
    <tbody>
        <tr style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; ">
            <th class="confluenceTh" style="font-size: 10pt; line-height: 13pt; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; background-color: #f0f0f0; text-align: left; vertical-align: top; color: #003366; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Logical name</th><th class="confluenceTh" style="font-size: 10pt; line-height: 13pt; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; background-color: #f0f0f0; text-align: left; vertical-align: top; color: #003366; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Shortcut</th>
        </tr>
        <tr style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; ">
            <td class="confluenceTd" style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Basic</td>
            <td class="confluenceTd" style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><em>Ctrl+Space</em></td>
        </tr>
        <tr style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; ">
            <td class="confluenceTd" style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Smart (SmartType)</td>
            <td class="confluenceTd" style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><em>Ctrl+Shift+Space</em></td>
        </tr>
        <tr style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; ">
            <td class="confluenceTd" style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Class Name</td>
            <td class="confluenceTd" style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; vertical-align: top; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><em>Ctrl+Alt+Space</em></td>
        </tr>
    </tbody>
</table>
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Pressing the same shortcut twice results in 'second' completion, which may give more variants.</p>
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">The&nbsp;<font color="red"><strong>New!</strong></font>&nbsp;mark means a feature is available in&nbsp;<a href="http://www.jetbrains.net/confluence/display/IDEADEV/Maia+EAP" rel="nofollow" style="color: #003366; ">Maia</a>&nbsp;only.</p>
<h1 style="line-height: 2; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 18pt; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #003366; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #3c78b5; width: 1401px; "><a name="Completionfeatures-Alllanguages" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>All languages</h1>
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">You may choose item in completion list not only with Enter, but also with variety of other keys:&nbsp;<em>space</em>,&nbsp;<em>dot</em>,&nbsp;<em>colon</em>,&nbsp;<em>semicolon</em>, '(' etc. Basically this will result in inserting that character after the completed identifier, but sometimes more will be done. For example, finishing Java method call with '(' will, of course, insert also ')'.</p>
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Choosing item with&nbsp;<em>Tab</em>&nbsp;has special meaning. In this case, if you are inside identifier, it will be overwritten completely instead of just inserting the item string into caret position.</p>
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Class Name completion works everywhere and typically displays all class names that are accessible from the current location. On second invocation it displaysall the classes that may become visible if you change their access modifiers or add necessary module dependencies.</p>
<p style="font-size: 10pt; line-height: 13pt; color: #000000; font-weight: normal; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;If you don't like some suggested classes and you don't want to see it anymore, you may easily&nbsp;<a href="http://blogs.jetbrains.com/idea/2009/04/easy-exclusion-of-classes/" rel="nofollow" style="color: #003366; ">exclude it from import and completion</a>.</p>
<h1 style="line-height: 2; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 18pt; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #003366; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #3c78b5; width: 1401px; "><a name="Completionfeatures-Java" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Java</h1>
<h3 style="line-height: normal; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14pt; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #003366; "><a name="Completionfeatures-Basic" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Basic</h3>
<ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-left: 22px; ">
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Context-specific reference and keyword completion, inserts parentheses, semicolons etc. where necessary.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Variable/method name suggestion based on type name, super methods and unresolved references in context file</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Getter/setter name completion based on class fields</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Property name/file path in string literal</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Second:
    <ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 22px; ">
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Inaccessible members (e.g. private fields) are shown.</li>
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">If prefix starts with an uppercase letter, shows all classes (like Class Name completion). Suggested in first completion invocation if there were no matching variants.</li>
    </ul>
    </li>
</ul>
<h3 style="line-height: normal; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14pt; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #003366; "><a name="Completionfeatures-Smart" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Smart</h3>
<ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-left: 22px; ">
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Performs reference variants filtering based on expected type. If say an&nbsp;<strong>int</strong>&nbsp;is expected, only the variables/fields/methods of&nbsp;<strong>int</strong>&nbsp;type will be suggested.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;If there is a one-element array of expected type (like the one created automatically to communicate with inner classes), and its name is say&nbsp;<tt>ref</tt>, then&nbsp;<tt>ref[0]</tt>&nbsp;is completed.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">After&nbsp;<strong>new</strong>&nbsp;suggests all the classes descending from the expected type, inserts parentheses, if the selected class is abstract, will generate anonymous class body and suggest methods to implement.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">After&nbsp;<strong>throw new</strong>&nbsp;suggests only the runtime exceptions merged with those explicitly declared in&nbsp;<strong>throws</strong>-clause.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">In Javadoc&nbsp;<strong>throws</strong>&nbsp;tag suggests exceptions from method's throws-clause.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">After&nbsp;<strong>catch</strong>&nbsp;suggests the exceptions that are thrown inside&nbsp;<strong>try</strong>.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">After&nbsp;<strong>instanceof</strong>&nbsp;suggests inheritors of the checked expression type.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">When&nbsp;<tt>Class&lt;? extends X&gt;</tt>&nbsp;is expected, suggests&nbsp;<tt>Class&lt;Y&gt;</tt>&nbsp;for all Y inheriting from X.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Completes generic parameters where missing:&nbsp;<tt>List&lt;String&gt; l = new ArrayList&lt;|&gt;();</tt></li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Inserts explicit method type parameters where necessary:&nbsp;<tt>collect(Collections.emptyLis|)</tt>&nbsp;where&nbsp;<tt>collect</tt>&nbsp;expects&nbsp;<tt>List&lt;String&gt;</tt></li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Suggests to cast to expected type after opening parenthesis:&nbsp;<tt>String s = (|</tt></li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;When calling a method or constructor with matching signature (e.g. a super method),&nbsp;<a href="http://blogs.jetbrains.com/idea/2009/09/super-method-completion/" rel="nofollow" style="color: #003366; ">fills all the parameters immediately</a>.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Suggests live templates with statically-determineable type and 'Smart completion' checkbox on.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Searches expected class's static members for matching values:&nbsp;<tt>Singleton s = |</tt>&nbsp;will result in&nbsp;<tt>Singleton s = Singleton.getInstance();</tt></li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Searches method containing class for&nbsp;<a href="http://blogs.jetbrains.com/idea/2009/03/smart-completion-of-java-primitive-method-parameters/" rel="nofollow" style="color: #003366; ">primitive constant fields</a>&nbsp;which may suit.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;<a href="http://blogs.jetbrains.com/idea/2009/08/original-intellij-cast/" rel="nofollow" style="color: #003366; ">Analyzes dataflow</a>&nbsp;in search for typecasts and *instanceof*s and suggests to cast expressions to expected type where possible.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Keywords:&nbsp;<strong>class</strong>,&nbsp;<strong>this</strong>&nbsp;(possibly qualified),&nbsp;<strong>true</strong>,&nbsp;<strong>false</strong>,&nbsp;<strong>null</strong></li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a href="http://blogs.jetbrains.com/idea/2008/08/smart-type-completion-becomes-even-smarter/" rel="nofollow" style="color: #003366; ">Second</a>:
    <ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 22px; ">
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Iterates over the visible methods/fields to check if their return value contains members of expected type, resulting in chained calls like&nbsp;<tt>getModule().getProject()</tt>. Prefix matching is done on both the first and the second member in chain (so you may get this result from both&nbsp;<tt>getMo|</tt>&nbsp;and&nbsp;<tt>getPro|</tt>).</li>
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Converts between arrays and lists when you have one in context and need another.</li>
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Adds&nbsp;<a href="http://blogs.jetbrains.com/idea/2009/04/second-smart-completion-for-array-elements/" rel="nofollow" style="color: #003366; ">array member access</a>&nbsp;when you have an array of expected type:&nbsp;<tt>int a = |</tt>&nbsp;will result in&nbsp;<tt>int a = intArray[|]</tt>.</li>
    </ul>
    </li>
</ul>
<h3 style="line-height: normal; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14pt; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #003366; "><a name="Completionfeatures-BothBasic%26Smart" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Both Basic &amp; Smart</h3>
<ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-left: 22px; ">
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;When completing a qualified expression analyzes dataflow and checks if there are any typecasts or *instanceof*s concerning the qualifier. If yes, suggests the variants based on the casted type and&nbsp;<a href="http://blogs.jetbrains.com/idea/2009/08/original-intellij-cast/" rel="nofollow" style="color: #003366; ">inserts the cast automatically</a>.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;In debugger's Evaluate Expression dialog does similar casting to&nbsp;<a href="http://blogs.jetbrains.com/idea/2009/09/debugger-evaluate-expression-enhancements/" rel="nofollow" style="color: #003366; ">runtime type</a>. When expression is simple variable/field access, it's done immediately, when it involves method calls, on second completion.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">If all variants are method overloads with the same name, lookup isn't shown, method name is inserted with caret placed inside parentheses.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">When completing a method with boolean return type, you may finish completion with '!' and the call result will be negated.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">You may finish completion with&nbsp;<strong>Complete Current Statement</strong>&nbsp;action (<em>Ctrl+Shift+Enter</em>), which will attempt to syntactically correct your code, e.g. wrap the following expression into parentheses if you've chosen a method call.</li>
</ul>
<h3 style="line-height: normal; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14pt; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #003366; "><a name="Completionfeatures-ClassName" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Class Name</h3>
<ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-left: 22px; ">
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">After&nbsp;<strong>new</strong>&nbsp;also inserts parentheses for constructor invocation.</li>
</ul>
<h1 style="line-height: 2; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 18pt; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; color: #003366; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #3c78b5; width: 1401px; "><a name="Completionfeatures-Groovy" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Groovy</h1>
<h3 style="line-height: normal; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14pt; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #003366; "><a name="Completionfeatures-Basic" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Basic</h3>
<ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-left: 22px; ">
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Context-specific reference and keyword completion, inserts parentheses, semicolons etc. where necessary.</li>
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Runtime members:
    <ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-left: 22px; ">
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">DefaultGroovyMethods</li>
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">SwingBuilder</li>
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;Grails domain class &amp; controller dynamic properties and methods</li>
        <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Gant script dynamic methods (e.g. depends, target) and properties (e.g. includeTargets, message)</li>
    </ul>
    </li>
</ul>
<h3 style="line-height: normal; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14pt; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #003366; "><a name="Completionfeatures-Smart" style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); "></a>Smart</h3>
<ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc; color: #000000; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-left: 22px; ">
    <li style="font-size: 10pt; line-height: 13pt; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="red"><strong>New!</strong></font>&nbsp;After&nbsp;<strong>new</strong>&nbsp;in variable initializer with known type suggests possible inheritors:&nbsp;<tt>CharSequence c = new |</tt></li>
</ul>
</div>
<div id="labels-section" class="pageSection" style="margin-top: 10px; clear: both; ">
<div id="labels-section">
<div id="labels-header" class="section-header" style="margin-bottom: 5px; padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; ">
<h2 class="section-title" style="line-height: normal; font-weight: bold; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 12pt; margin-top: 20px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; color: black; display: inline; ">Labels</h2>
&nbsp;</div>
<div id="labelsList">(None)</div>
</div>
</div>
</div>
</span></div>
<img src ="http://www.blogjava.net/yifeng/aggbug/300007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2009-10-28 09:19 <a href="http://www.blogjava.net/yifeng/archive/2009/10/28/300007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IntelliJ IDEA走向开源</title><link>http://www.blogjava.net/yifeng/archive/2009/10/18/298778.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sun, 18 Oct 2009 13:36:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2009/10/18/298778.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/298778.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2009/10/18/298778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/298778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/298778.html</trackback:ping><description><![CDATA[<span  style="border-collapse: collapse; color: #3f3f3f; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 16px; "><span style="font-size: 14pt; "><span style="font-size: 12pt; "><span style="font-size: 14pt; ">为软件开发商提供增效型智能工具的创建商 JetBrains(R) 宣布了其获奖的 Java IDE -- IntelliJ(R) IDEA 免费社区版 (Community Edition) 的首个公开预览。<br />
&nbsp;&nbsp;&nbsp; 从即将推出的9.0版开始，IntelliJ IDEA 将以两个版本提供：社区版，免费且开源；终极版 (Ultimate Edition)，今天之前，终极版一直只是指 IntelliJ IDEA。<br />
&nbsp;&nbsp;&nbsp; 最好的消息便是，社区版的推出消除了 IntelliJ IDEA 更广泛用于纯 Java 开发的唯一障碍 -- 价格问题。该版本不仅是免费的，而且 -- 也是特别重要的 -- 它还是完全开源的。<br />
&nbsp;&nbsp;&nbsp; JetBrains 首席执行官 Sergey Dmitriev 表示："我们一直通过我们的公共 Early Access Program（简称'EAP'）、发行追踪者、论坛等面向社区开放。这使得我们与用户之间形成了紧密而又直接的反馈环，甚至在业界还没广泛认可这一实践时。自那以后，我们通过免费的产品授权为数百个开源计划提供了支持；为 Groovy 和 Scala 等各种开源计划贡献了代码；并为我们自己开发了数个开源 IntelliJ IDEA 插件。因此，您可以明白通过开源授权免费提供 IntelliJ IDEA 体验是如何与我们致力于社区的重心相结合的。开源已经成为了主流，我们继续将其作为一个激动人心的挑战。简单说来，我们并没有改变方向 -- 我们正在向前发展。"<br />
&nbsp;&nbsp;&nbsp; 该全新的社区版建基于 IntelliJ 平台，包括其源代码。JetBrains 通过将大众化 Apache 2.0 授权应用于社区版和 IntelliJ 平台，使得它们源代码的获得和使用变得尽可能简单。<br />
&nbsp;&nbsp;&nbsp; 说实在的，IntelliJ 平台可以看作是 JetBrains 构建智能 IDE 的专门知识。它不仅是 IntelliJ IDEA 本身的基础，而且还是其它众多创新型 JetBrains 工具（旨在用于以特定语言和/或域进行的开发）的基础。这些著名的新工具包括 RubyMine、网络开发 IDE（已经在公开预览中）MPS 以及其它目前正在开发的工具。<br />
&nbsp;&nbsp;&nbsp; 根据非常合理且显而易见的实用原则，IntelliJ IDEA 被分为两个版本：<br />
&nbsp;&nbsp;&nbsp; -- 社区版 -- 依靠纯 Java/Groovy 应用工作或进行 Swing 开发的人们的完美之选。它拥有 IntelliJ IDEA 的所有优势，包括各种代码重构和代码检查、编码辅助、调试、TestNG 和 JUnit 测试；CVS、Subversion 和 Git 支持以及 Ant 和 Maven 构建整合。<br />
&nbsp;&nbsp;&nbsp; 垂询详情，或下载社区版公开预览，请访问&nbsp;<a href="http://www.jetbrains.com/idea/nextversion/free_java_ide.html" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/nextversion/free_java_ide.html</u></a>&nbsp;。<br />
&nbsp;&nbsp;&nbsp; -- 终极版 -- 一个功能齐全的商业化 IntelliJ IDEA，拥有完整的网络和企业开发工具组合，一贯为最重要的现代技术和框架提供最高质量的支持。9版本的新功能包括：<br />
&nbsp;&nbsp;&nbsp; -- Java EE 6，拥有 JSF 2.0、JPA 2.0、Servlets 3.0、Bean 验证等。<br />
&nbsp;&nbsp;&nbsp; -- Android、Google App Engine、GWT<br />
&nbsp;&nbsp;&nbsp; -- Adobe AIR、FlexUnit<br />
&nbsp;&nbsp;&nbsp; -- JavaScript 重构和调试<br />
&nbsp;&nbsp;&nbsp; -- Tapestry、OSGi<br />
&nbsp;&nbsp;&nbsp; -- PHP，等。<br />
&nbsp;&nbsp;&nbsp; 将 IntelliJ IDEA 终极版区分开的主要功能包括：紧密的 Perforce、Rational ClearCase 和微软 (Microsoft) Team Foundation Server 整合、依存结构矩阵、带有结构搜寻和替换的先进代码管理。这些以及其它诸多性能使得它成为面向 Java 平台上广泛的专业开发的独特工具。<br />
&nbsp;&nbsp;&nbsp; 欲查看 IntelliJ IDEA Ultimate 9 的更多新功能的列表，或下载预览构建，请访问&nbsp;<a href="http://www.jetbrains.com/idea/nextversion/index.html" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/nextversion/index.html</u></a>&nbsp;。<br />
&nbsp;&nbsp;&nbsp; 阅读社区版和终极版的差异，请访问&nbsp;<a href="http://www.jetbrains.com/idea/nextversion/editions_comparison_matrix.html" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/nextversion/editions_comparison_matrix.html</u></a>&nbsp;。<br />
&nbsp;&nbsp;&nbsp; 垂询 IntelliJ IDEA 社区版开源计划详情，或下载其源码，请访问&nbsp;<a href="http://www.jetbrains.org/" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.org</u></a>&nbsp;。<br />
&nbsp;&nbsp;&nbsp; JetBrains 简介<br />
&nbsp;&nbsp;&nbsp; JetBrains 是一家技术领先的软件开发公司，专门从事增效型智能软件的开发。该公司因其获奖的创新型 Java(TM) 集成开发环境 IntelliJ(TM) IDEA（详情请见<a href="http://www.jetbrains.com/idea/" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/idea/</u></a>&nbsp;）、面向 .NET 开发人员的 ReSharper 和 dotTrace Profiler（请见&nbsp;<a href="http://www.jetbrains.com/resharper/index.html" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/resharper/index.html</u></a>&nbsp;和<a href="http://www.jetbrains.com/profiler/index.html" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/profiler/index.html</u></a>&nbsp;）、持续集成和构建管理环境 TeamCity (&nbsp;<a href="http://www.jetbrains.com/teamcity/index.html" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/teamcity/index.html</u></a>&nbsp;) 以及 Ruby 和 Rails 集成开发环境 RubyMine (&nbsp;<a href="http://www.jetbrains.com/ruby" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/ruby</u></a>&nbsp;) 而享誉各地。JetBrains 总部位于捷克布拉格，在俄罗斯圣彼得堡和马萨诸塞州波士顿设有研发实验室。垂询详情，请访问<a href="http://www.jetbrains.com/index.html" target="_blank" style="text-decoration: none; color: #ee7a00; "><u>http://www.jetbrains.com/index.html</u></a>&nbsp;。</span></span></span></span>
<img src ="http://www.blogjava.net/yifeng/aggbug/298778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2009-10-18 21:36 <a href="http://www.blogjava.net/yifeng/archive/2009/10/18/298778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用IntelliJ IDEA自动在线升级服务</title><link>http://www.blogjava.net/yifeng/archive/2009/02/05/253428.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Thu, 05 Feb 2009 10:03:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2009/02/05/253428.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/253428.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2009/02/05/253428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/253428.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/253428.html</trackback:ping><description><![CDATA[IDEA 8.1会添加自动在线升级服务（auto update)，也就是自动升级IDEA本身。下面我们就讲述一下如何使用这一特性，这样会让IDEA的版本升级更加简单。在本文中，假定我已经安装了IDEA EAP 9684版本，而目前IDEA的最新EAP版本为9712。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 1. 选择Updates：打开IDEA的控制面板，选择&#8220;Updates&#8221;，然后点击&#8220;Check Now&#8221;按钮：<br />
<img title="选择update" style="margin: 5px; width: 829px; height: 390px" height="390" alt="选择update" src="http://www.intellij.org.cn/portal/images/stories/artciles/auto_update/auto_update_1.png" width="829" align="bottom" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. 下载Patch：在&#8220;Update Info&#8221;对话框中会出现升级信息：如果JetBrains站点提供目前使用版本到最新版本的升级补丁，就会提示你下载补丁进行升级，否则你就要去下载完整IDEA安装包啦。<br />
<img title="下载patch" style="margin: 5px; width: 898px; height: 397px" height="397" alt="下载patch" src="http://www.intellij.org.cn/portal/images/stories/artciles/auto_update/auto_update_2.png" width="898" align="bottom" /><br />
&nbsp;&nbsp;&nbsp;&nbsp; 3. 安装Patch：点击&#8221;Download Patch and Shutdown&#8220;后，IDEA就会下载升级补丁，同时重新启动IDEA，在重启动IDEA的过程中，会提示你是否安装升级补丁，你只需点击&#8221;Install Patch&#8220;就可以啦，最后IDEA会提示你手动重新启动IDEA。<br />
<img title="安装patch" style="margin: 5px; width: 502px; height: 318px" height="318" alt="安装patch" src="http://www.intellij.org.cn/portal/images/stories/artciles/auto_update/auto_update_3.png" width="502" align="bottom" /><br />
&nbsp;&nbsp;&nbsp;&nbsp; 整个升级过程（3步）还是比较流畅的，这样升级IDEA就方便很多啦。IDEA的安装包也越来越大（目前为128M），通过这种方式升级IDEA不需要再下载安装包，安装也便捷，且IDEA的相关配置也不会更改。<strong>注意：</strong>如果你通过代理服务器进行升级，可能代理服务器保留缓存，导致你看不到最新的更新信息，要注意一下。 <!-- JOM COMMENT START -->
<img src ="http://www.blogjava.net/yifeng/aggbug/253428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2009-02-05 18:03 <a href="http://www.blogjava.net/yifeng/archive/2009/02/05/253428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IntelliJ 8.1 build 9618发布</title><link>http://www.blogjava.net/yifeng/archive/2008/12/31/249271.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Tue, 30 Dec 2008 17:47:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/12/31/249271.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/249271.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/12/31/249271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/249271.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/249271.html</trackback:ping><description><![CDATA[IntelliJ IDEA 8.1 EAP (build 9618), released on December 30, 2008:<br />
<br />
http://www.jetbrains.net/confluence/display/IDEADEV/Diana+EAP<br />
<br />
<br />
<h2>Release Notes</h2>
<p>IntelliJ IDEA 8.1 EAP includes the following new features:</p>
<ul>
    <li>Major performance improvements for index updates and compiler caches</li>
    <li>Sharing settings between multiple installations of IntelliJ IDEA on different computers (work in progress)</li>
    <li>Team Foundation Server integration</li>
    <li>git integration</li>
    <li>Resin integration</li>
    <li>Oracle SQL dialect support (work in progress)</li>
    <li>Copyright plugin is now bundled</li>
</ul>
<br />
<img src ="http://www.blogjava.net/yifeng/aggbug/249271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-12-31 01:47 <a href="http://www.blogjava.net/yifeng/archive/2008/12/31/249271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Running Maven Built Web Applications Directly From Intellij IDEA</title><link>http://www.blogjava.net/yifeng/archive/2008/12/10/245524.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 10 Dec 2008 08:38:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/12/10/245524.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/245524.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/12/10/245524.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/245524.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/245524.html</trackback:ping><description><![CDATA[<p>
<div class="content">
<p><a href="http://mattfleming.com/node/285"><img class="thumbnail" alt="Intellij Icon" src="http://mattfleming.com/files/images/ij_icon.jpeg" width="91" height="91" /></a>Here's how you can run maven built web applications
directly from within Intellij IDEA 8. Once you run this way, you completely
eliminate the code, build, deploy, restart cycle just when you want to make a
change... you can even change classes on the fly (hot swapping). </p>
<p>I pretty much only run in debug mode now. Debugging is really nice because
the dependent source files are linked up and downloaded automagically by maven
on the fly and class changes via hot swapping really makes you productive. The
archetype selection in the project creation wizard came with version 8 but the
rest of the guide will work with versions 6 and 7 as well. I used the
appfuse-basic-spring archetype as the web application but any web app built with
maven should work in a pretty similar way. </p>
<h3>Create Maven Module </h3>
<p>First, we need a project. There's nothing special to note here with the
exception of the <em>name</em> field. The name field <strong>cannot contain a
space</strong>. If it does, Intellij doesn't start up tomcat properly and you
get this ClassNotFoundException on logging/properties. </p>
<p><a href="http://mattfleming.com/node/270"><img alt="Create new project" src="http://mattfleming.com/files/images/a.preview.png" width="640" height="563" /></a> </p>
<h3>Choose Maven Archetype </h3>
<p>You can type in what you want to for your particular project here. Then click
Finish. </p>
<p><a href="http://mattfleming.com/node/271"><img alt="Choose Archetype" src="http://mattfleming.com/files/images/b.preview.png" width="640" height="563" /></a> </p>
<h3>Build Project with Maven </h3>
<p>Next you need to build the project to make the output directories. </p>
<p><a href="http://mattfleming.com/node/272"><img alt="Run Maven Package" src="http://mattfleming.com/files/images/1.png" width="487" height="550" /></a> </p>
<h3>Click Edit Configurations </h3>
<p>There's a button on the toolbar or you can find it by going to Run -->
Edit Configurations. After you click the plus sign and pick local tomcat server
you'll see this </p>
<p><a href="http://mattfleming.com/node/282"><img alt="Run/Debug Configurations" src="http://mattfleming.com/files/images/2.preview.png" width="640" height="588" /></a> </p>
<h3>Pick Application Server </h3>
<p>If you've already configured an application server for Intellij, you can just
choose it in the dropdown menu. Otherwise you'll need to configure one. After
you click Configure... you'll see this screen: </p>
<p><a href="http://mattfleming.com/node/273"><img alt="Create Local Tomcat Server" src="http://mattfleming.com/files/images/3.preview.png" width="640" height="534" /></a> </p>
<p>If you haven't installed Tomcat locally you'll of course need to do that.
Then click the plus sign and pick the tomcat home and Intellij will figure out
the rest. </p>
<p>After you hit ok, you'll be back to the Run/Debug Configurations menu. Now
you can choose the server from the dropdown and the <em>Startup page:</em>
should be filled in with whatever port your Tomcat server has been configured to
use. </p>
<p><a href="http://mattfleming.com/node/274"><img alt="After Tomcat Server Config" src="http://mattfleming.com/files/images/4.preview.png" width="640" height="590" /></a> </p>
<h3>Click on Deployment Tab </h3>
<p>This is where you choose the deployment source and application context for
the web <em>facet</em> within the application. First click on the Web Facet: Web
module in the middle pane and check the <em>Deploy Web Facet 'Web</em>'
checkbox. </p>
<p><a href="http://mattfleming.com/node/275"><img alt="Click Deployment Tab" src="http://mattfleming.com/files/images/5.preview.png" width="640" height="588" /></a> </p>
<p>Click the Configure... button. </p>
<h3>Configure the Deployment Source </h3>
<p>Uncheck the <em>Create web facet war file</em> and choose <em>Create web
facet exploded directory</em> instead. </p>
<p><a href="http://mattfleming.com/node/283"><img alt="Java EE Build Settings Default" src="http://mattfleming.com/files/images/6.preview.png" width="640" height="464" /></a> </p>
<p>Click the ellipses (...) button to choose the exploded directory: </p>
<p><a href="http://mattfleming.com/node/276"><img alt="Select Web Facet Exploded Directory" src="http://mattfleming.com/files/images/7.png" width="590" height="497" /></a> </p>
<p>Choose the location under the <em>target</em> folder where maven built the
war. It is going to be named using artifactId-version that you chose when you
created the project in the first place. This information is stored in the
pom.xml file so you can change it whenever you want. If you do change it go back
to the <em>Build Project with Maven</em> step after you have done so. </p>
<p>Click Ok. Then Click Ok to close the <em>Deployment Source</em> window. </p>
<h3>Finish Deployment Tab </h3>
<p>Now you can select the <em>Deployment Source</em> and set your application
context. </p>
<p><a href="http://mattfleming.com/node/277"><img alt="Finish Web Facet Deployment" src="http://mattfleming.com/files/images/8.preview.png" width="640" height="588" /></a> </p>
<p>Click Ok. </p>
<h3>Run/Debug the Application </h3>
<p>You should see the server startup successfully </p>
<p><a href="http://mattfleming.com/node/278"><img alt="Click the Run Button" src="http://mattfleming.com/files/images/9.preview.png" width="640" height="370" /></a> </p>
<h3>Login to the Application </h3>
<p><a href="http://mattfleming.com/node/279"><img alt="See Login Page" src="http://mattfleming.com/files/images/10.preview.png" width="640" height="483" /></a> </p>
<p><a href="http://mattfleming.com/node/280"><img alt="Login to the application" src="http://mattfleming.com/files/images/11.preview.png" width="640" height="433" /></a> </p>
<h3>Hot Swapping </h3>
<p>If you've started up in debug mode (highly recommended), change a class in
the class path and <em>make</em> the project (Apple+F9) or <em>compile</em> the
specific class you've changed (Apple+Shift+F9). You should be presented with
this popup: </p>
<p><a href="http://mattfleming.com/node/284"><img alt="Redeploy Application Popup" src="http://mattfleming.com/files/images/redeploy_facets.png" width="511" height="219" /></a> </p>
<p>Make sure you <strong>click No</strong> on this dialog box. If you click yes,
hot swapping won't work. I usually check <em>Do not show this dialog in the
future</em> as well. </p>
<p>That's it! Now when you change classes and JSPs you can just <em>compile</em>
and they will be hot swapped with resources on the running server.&#160;</p>
</div>
</p>
<img src ="http://www.blogjava.net/yifeng/aggbug/245524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-12-10 16:38 <a href="http://www.blogjava.net/yifeng/archive/2008/12/10/245524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CodeExplorer 1.0 for IntelliJ Idea</title><link>http://www.blogjava.net/yifeng/archive/2008/12/09/245207.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Tue, 09 Dec 2008 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/12/09/245207.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/245207.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/12/09/245207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/245207.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/245207.html</trackback:ping><description><![CDATA[<p><a href="http://plugins.intellij.net/plugin/?id=3739">CodeExplorer</a> is
IntelliJ Idea plugin that helps to explore method call chains.<br />
Its tool
window shows methods and calls between them on a handy diagram.<br />
Now you can
see usages and structure of several methods on a single diagram! <br />
<br />
Start
from <strong>Analyze</strong> menu to display method calls from one method (method
structure) or between methods in class.<br />
Click on method nodes to display what
methods they call or its usages!</p>
<p>You can choose on graph toolbar what to show on method node click: usages or
called methods:</p>
<p>&#160;<img src="http://handyedit.com/images/codeexplorer2.gif" width="400" height="100"  alt="" /> </p>
<p><a href="http://plugins.intellij.net/plugin/?id=3739">Download it here.</a></p>
<img src ="http://www.blogjava.net/yifeng/aggbug/245207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-12-09 12:45 <a href="http://www.blogjava.net/yifeng/archive/2008/12/09/245207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Handy SQL with IntelliJ IDEA</title><link>http://www.blogjava.net/yifeng/archive/2008/11/13/240193.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 12 Nov 2008 16:14:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/11/13/240193.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/240193.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/11/13/240193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/240193.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/240193.html</trackback:ping><description><![CDATA[<p>If a project you are working on requires referring to an SQL database, you can, actually, use one of the numerous SQL clients, or type commands in the command line - and regularly switch between frames. Now <a href="http://www.jetbrains.com/idea/index.html?dzone">IntelliJ IDEA</a> suggests a better choice. Since version 8.0, you have a dedicated Database tool window at your disposal, which allows you to work with the data sources without leaving <a href="http://www.jetbrains.com/idea/index.html?dzone">IntelliJ IDEA</a>.</p>
<p>Let&#8217;s have a 10,000-feet look at IntelliJ IDEA&#8217;s database support in action. </p>
<p>First, configuring a data source is now just a snap &#8211; press Insert, specify your data source parameters and make sure you are connected. By the way, you can use the old good External Tools dialog to create start and stop scripts for a database server, if needed.</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="174" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/sqlDatabaseToolWindow.png" width="311" /></span> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>You can now create SQL scripts, enjoying the famous IntelliJ IDEA&#8217;s coding assistance, which includes syntax and error highlighting, code completion for keywords, table and column names, and more.</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="240" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/sqlEditor.png" width="515" /></span> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>From the Database tool window you can launch JDBC console for a data source of your choice. It is very easy &#8211; just select the desired data source, and click the run button on the toolbar. Console adds a tab to the Run tool window. Here you are: the upper panes are intended for SQL commands, the lower pane displays messages.</p>
<p>Let&#8217;s start typing SQL commands. As you see, syntax highlighting and code completion are also available here:</p>
<span class="inline inline-left"><img class="image image-preview" title="" height="130" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/sqlConsole1.png" width="370" /></span>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Should I also mention that you can find here the handy editor shortcuts that have already become a habit for the IntelliJ IDEA users? Among them, pay attention to &#8220;<strong>Go to Declaration</strong>&#8221;. If you place the cursor at the table name, and click <strong>Ctrl+B</strong>, the corresponding table will be highlighted in the data source.</p>
<p>The console can contain as many commands as required. You can run them all at once (<strong>Ctrl+Enter</strong>), or execute one by one, in the order you consider appropriate (<strong>Ctrl+Shift+Enter</strong>), and see results in the lower pane:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="179" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/sqlConsole2.png" width="330" /></span> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Suppose you want to retrieve data from the various tables. Instead of repeatedly entering the same command with the changing parameters, use variables, which are just strings enclosed in $, #, or ?{}. When such a string is encountered in a command you type in the left pane, it is added to the list of parameters in the right pane, where you can enter the desired values: </p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="171" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/sqlConsole3.png" width="518" /></span> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>What happens if you use wrong syntax? An error is marked same way as in the editor, with the red underline, and diagnostics at the tooltip. If you want to change SQL dialect, just click the properties button in the console toolbar, and select one of the supported dialects. </p>
<img src ="http://www.blogjava.net/yifeng/aggbug/240193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-11-13 00:14 <a href="http://www.blogjava.net/yifeng/archive/2008/11/13/240193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Class Diagram in IntelliJ IDEA 8</title><link>http://www.blogjava.net/yifeng/archive/2008/11/12/239994.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 12 Nov 2008 01:45:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/11/12/239994.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/239994.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/11/12/239994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/239994.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/239994.html</trackback:ping><description><![CDATA[<h1 align="center">Class Diagram in IntelliJ IDEA 8</h1>
<a href="http://www.jetbrains.com/idea/index.html?dzone">IntelliJ IDEA 8</a> is already here. It is so feature-rich that it&#8217;s rather hard to tell what is most important &#8211; improved testing support, or new refactorings, injected languages, or handy interaction with data sources. In due time, we&#8217;ll dig deeper into all the new features.
<p>Let&#8217;s begin with something brand-new for IntelliJ IDEA, namely UML Class diagram support. This feature is actually the first attempt to approach UML modeling, and thus requires further finishing and fine-tuning. Try Class diagram with IDEA hands-on &#8211; your feedback will be appreciated and considered in further revisions. </p>
<p>You can use UML Class diagram for two purposes: </p>
<ul>
    <li>To create a visual model, populate it with node elements and members, and have the underlying code generated automatically (forward engineering).
    <li>To explore existing source code, understand its hierarchy and dependencies (reverse engineering).</li>
</ul>
<h2>Creating visual model</h2>
<p>To demonstrate visual modeling with <a href="http://www.jetbrains.com/idea/index.html?dzone">IntelliJ IDEA</a> UML Class diagram in action, we&#8217;ll create a new Java project, add a package (for example, <strong>animals</strong>), and press (take care of your fingers) <strong>Ctrl+Alt+Shift+U</strong>. Context menu of the diagram helps create all the required elements, but, since <strong>IntelliJ IDEA</strong> is strongly keyboard-centric, we&#8217;ll use keyboard shortcuts.</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="128" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml1.png" width="370" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Press <strong>Shift+C</strong> to create new classes, for example, <strong>Animals</strong>, and <strong>Carnivore</strong>. Now press <strong>Shift+I</strong> to create an interface, say, <strong>Huntable</strong>. Note a very handy way to add node elements to a diagram: select a class in the Project view and just drag it to the diagram background:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="187" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml2.png" width="281" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Next step is to add fields and methods to node elements. Here, again, you can use context menu commands, or keyboard shortcuts. For example, having selected a node element, press <strong>Shift+M</strong>, and define method name, type and parameters, if any:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="166" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml3_0.png" width="253" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Now, let&#8217;s create relationship links between node elements. For this purpose, you have to enable the special edge drawing mode by clicking edge drawing mode button <span class="inline inline-undefined"><img class="image image-_original" title="" height="23" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml4.png" width="26" /></span> on the diagram toolbar. IntelliJ IDEA can smartly tell the type of relationship link, depending on the source and target nodes. </p>
<p>Suppose you draw a link from a class to an interface:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="203" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml5.png" width="542" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Click the <strong>Generate methods</strong> button, and select the methods you want to be implemented.</p>
<p>Look into the source code of the Carnivore class, and see that <strong>implements</strong> clause has been generated, together with the selected methods&#8217; stubs. Drawing a link between two classes, results in generating <strong>extends</strong> clause:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="260" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml6.png" width="456" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Exploring code base with UML Class diagram</h2>
<p>Let&#8217;s see how you can use Class diagram in <a href="http://www.jetbrains.com/idea/index.html?dzone">IntelliJ IDEA</a> to reverse engineer source code, and view its structure, hierarchies and dependencies. Select a library package, for example, <strong>java.beans</strong>, and open its Class diagram:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="149" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml7.png" width="546" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>What does IntelliJ IDEA suggest to get as much information as possible? Actually, all facilities are on the diagram toolbar and context menu&#8230; however, as it is custom for IntelliJ IDEA, you can do everything using both the keyboard, and pointing device. </p>
<p>If a diagram is too large, get a &#8220;10,000-feet view&#8221; of it in the Structure tool window. To do that, just press <strong>Alt+7</strong>:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="116" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml8.png" width="260" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The gray rectangle represents the currently visible area of the diagram. Dragging this rectangle reveals the corresponding portion of diagram. You can zoom in and out using the NumPad plus and minus keys, or rotate your mouse wheel. </p>
<p>If the names of the node elements are long, you can reduce them to the capital letters only by pressing <strong>Alt+N</strong>. Pointing to a node shows its fully qualified name at the tooltip:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="186" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml9.png" width="510" /></span> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>If we want to see the node elements with their members, rather than just class names in the title bars, press the toolbar buttons <span class="inline inline-left"><img class="image image-_original" title="" height="25" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml14.png" width="98" /></span></p>
<p>, or use keyboard shortcuts to show fields (<strong>Alt+F</strong>), constructors (<strong>Alt+C</strong>), methods (<strong>Alt+M</strong>) and inner classes (<strong>Alt+I</strong>) respectively:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="302" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml10.png" width="546" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>To show the package the selected node belongs to, just press <strong>C</strong>, and the diagram will collapse to the container package:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="119" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml11.png" width="181" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The opposite action (<strong>E</strong>) expands selected package and shows its Class diagram. You can also easily visualize the nodes that reside in the same package, or in subpackages. To do that, select a node element in diagram, and press <strong>Space</strong> bar. The sibling nodes are highlighted yellow, and the nodes that belong to subpackages of the current package are green. The nodes that reside outside of the current package are not highlighted:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="228" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml12.png" width="539" /></span> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>If you point to a package, a tooltip appears with the complete information about the package - its name, number of contained classes and subpackages.</p>
<p>Suppose that you want to explore only a portion of diagram, and remove from view those elements that are of no interest for you. In this case, use the <strong>Delete</strong> key. The node elements are deleted from diagram, but the corresponding files are left intact. (If you want to physically delete an element, use <strong>Safe Delete</strong> refactoring). </p>
<p>For exploring dependencies, click the show dependencies button <span class="inline inline-left"><img class="image image-_original" title="" height="23" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml15_0.png" width="25" /></span> on the diagram toolbar </p>
<p>. As you select a node element, its dependency links appear in diagram:</p>
<p><span class="inline inline-left"><img class="image image-preview" title="" height="206" alt="" src="http://jetbrains.dzone.com/sites/all/files/images/uml13.png" width="498" /></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Needless to say that handy navigation shortcuts, search for usages, analysis of dependencies and refactorings you are used to in IntelliJ IDEA, are available in Class diagram too.</p>
<p>Try the live demo at <a href="http://www.jetbrains.com/idea/training/demos/uml-class-diagrams.html">http://www.jetbrains.com/idea/training/demos/uml-class-diagrams.html</a></p>
<img src ="http://www.blogjava.net/yifeng/aggbug/239994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-11-12 09:45 <a href="http://www.blogjava.net/yifeng/archive/2008/11/12/239994.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一篇关于JSR 305的介绍文章</title><link>http://www.blogjava.net/yifeng/archive/2008/09/14/228824.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sat, 13 Sep 2008 16:52:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/09/14/228824.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/228824.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/09/14/228824.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/228824.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/228824.html</trackback:ping><description><![CDATA[IDEA已经实现了部分代码检查，这个应该是IDEA后续支持的， <a class="postlink" href="http://today.java.net/pub/a/today/2008/09/11/jsr-305-annotations.html">http://today.java.net/pub/a/today/2008/09/11/jsr-305-annotations.html</a>
<img src ="http://www.blogjava.net/yifeng/aggbug/228824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-09-14 00:52 <a href="http://www.blogjava.net/yifeng/archive/2008/09/14/228824.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vibrant Ink Theme for IntelliJ IDEA</title><link>http://www.blogjava.net/yifeng/archive/2008/08/27/225110.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 27 Aug 2008 10:15:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/08/27/225110.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/225110.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/08/27/225110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/225110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/225110.html</trackback:ping><description><![CDATA[我一直使用IDEA默认的颜色和字体theme，估计有不少人系统那种黑底白字的样式，这里推荐一下Vibran Link主题，看效果非常不错。将附件xml下载后放到IDEA的配置目录（默认在用户主目录下的.IntelliJIdea80）下的config\colors子目录下即可，然后在&#8220;Colors &amp; Fonts&#8221;设置面板中选择"VibranLink"就可以啦。 据TextMate用户说，这个theme很漂亮，我们也跟着沾光啦。<br />
<br />
<img height="407" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/virbant_1.png" width="559" border="0" /><br />
<br />
<img height="493" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/2008-03-25_vibrant_2.png" width="638" border="0" /><br />
<br />
<img height="170" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/vibrantink.png" width="458" border="0" /><br />
<br />
下载地址：&nbsp;<a title="VibrantInk.rar" href="/Files/yifeng/Repository/VibrantInk.rar">VibrantInk.rar</a><br />
<br />
 <img src ="http://www.blogjava.net/yifeng/aggbug/225110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-08-27 18:15 <a href="http://www.blogjava.net/yifeng/archive/2008/08/27/225110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IntelliJ IDEA 目录技巧</title><link>http://www.blogjava.net/yifeng/archive/2008/08/27/224903.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Tue, 26 Aug 2008 21:21:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/08/27/224903.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/224903.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/08/27/224903.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/224903.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/224903.html</trackback:ping><description><![CDATA[&nbsp;
<p style="text-align: center" align="center"><span style="font-size: 22pt">IntelliJ IDEA </span><span style="font-size: 22pt; font-family: 宋体">目录技巧</span></p>
<div style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 4pt; margin-left: 46.8pt; border-left: medium none; margin-right: 46.8pt; padding-top: 0cm; border-bottom: #4f81bd 1pt solid">
<p style="margin: 10pt 0cm 14pt">IntelliJ IDEA<span style="font-family: 宋体">的</span>Web<span style="font-family: 宋体">应用的目录结构</span></p>
</div>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">目录图：<br />
<img height="286" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA01.JPG" width="334" border="0" /></span></p>
<table style="border-right: medium none; border-top: medium none; margin-left: 21pt; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tbody>
    </tbody>
</table>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">目录解释：</span></p>
<table style="border-right: medium none; border-top: medium none; margin-left: 21pt; border-left: medium none; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" border="1">
    <tbody>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: #4f81bd 1pt dashed; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 405.1pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="540" colspan="2">
            <p><strong><span style="font-family: 宋体">开发目录</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p><strong><span style="font-family: 宋体">目录名称</span></strong></p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><strong><span style="font-family: 宋体">描述</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>Test</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">工程名称</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp; lib</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p>Jar<span style="font-family: 宋体">包的存放目录</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp; src</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">源文件也就是文件</span>(<span style="font-family: 宋体">类，资源文件</span>)<span style="font-family: 宋体">存放的目录</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp; test</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">测试用例文件</span>(<span style="font-family: 宋体">类、资源文件</span>)<span style="font-family: 宋体">测存放的目录</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp; web</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p>WEB<span style="font-family: 宋体">根目录，存放</span>WEB<span style="font-family: 宋体">资源</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WEB-INF</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">配置文件存放目录</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197"></td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344"></td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 405.1pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="540" colspan="2">
            <p><strong>Module</strong><strong><span style="font-family: 宋体">的输出目录</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p><strong><span style="font-family: 宋体">目录名称</span></strong></p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><strong><span style="font-family: 宋体">描述</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>out</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">当前工程的输出，包括所有的资源和类文件</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp; Exploded</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">工程的输出目录</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TestWeb</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">工程在容器中运行的别名</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp; production</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">类文件的输出目录</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">工程名称，准确的说应该是模块的名称，存放</span>src<span style="font-family: 宋体">编译后文件，都输出到这里了</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp; test</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">测试的类文件目录</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #4f81bd 1pt dashed; width: 147.45pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="197">
            <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test</p>
            </td>
            <td style="border-right: #4f81bd 1pt dashed; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 257.65pt; padding-top: 0cm; border-bottom: #4f81bd 1pt dashed" valign="top" width="344">
            <p><span style="font-family: 宋体">工程名称，准确的说应该是模块的名称，存放</span>test<span style="font-family: 宋体">编译后的类和资源文件，都输出到这里了</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin-left: 21pt; text-indent: -21pt; text-align: center" align="center"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">首先我要说一点，在</span>IntelliJ IDEA<span style="font-family: 宋体">里面&#8220;</span>new Project<span style="font-family: 宋体">&#8221;就相当于我们</span>eclipse<span style="font-family: 宋体">的&#8220;</span>workspace<span style="font-family: 宋体">&#8221;，而&#8220;</span>new Module<span style="font-family: 宋体">&#8221;才是创建一个工程，这是要注意的一点。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; text-align: center" align="center"><span style="font-family: Wingdings">&#216;&nbsp;</span>&nbsp;<span style="font-family: 宋体">我们会发现，在用</span>IntelliJ IDEA <span style="font-family: 宋体">进行开发的时候，会有</span>2<span style="font-family: 宋体">个目录，一个是&#8220;开发目录&#8221;，用来经常进行我们的开发操作，是可见的，另一个就是&#8220;输出目录&#8221;，这个环境目录，我们是看不见的，也就是在</span>IDEA<span style="font-family: 宋体">里面看不见，我们在实际的路径中能看到，其实这个环境目录就相当于我们的容器的当前环境，我们通常的做法是把容器的虚拟目录指定到一个目录，这里</span>IntelliJ IDEA<span style="font-family: 宋体">会默认把当前环境指定到</span>out<span style="font-family: 宋体">里面，这样一来不用再往容器里面发布了，节省了开发时间。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">我们会发现，</span>lib<span style="font-family: 宋体">竟然和</span>src<span style="font-family: 宋体">成了同级目录了，常理应该放在</span>WEB-INF<span style="font-family: 宋体">下面的，这是</span>IntelliJ IDEA<span style="font-family: 宋体">默认的，当然，这个目录我们也可以改回&#8220;</span>WEB-INF<span style="font-family: 宋体">&#8221;下面，这是一点。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">接着我们会发现，没有</span>classes<span style="font-family: 宋体">目录，常理，它也应该在&#8220;</span>WEB-INF<span style="font-family: 宋体">&#8221;下面呀，是在，一会儿我在告诉你，他藏到哪里去了，呵呵。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">然后就是输出目录了，我来给大家逐步解释，我们可以打开实际的目录结构来查看，&#8220;</span>production<span style="font-family: 宋体">&#8221;这个目录放的是所有工程文件</span>(<span style="font-family: 宋体">类，和资源</span>)<span style="font-family: 宋体">文件，也就是所有放在</span>src<span style="font-family: 宋体">下面的所有文件。下面的&#8220;</span>Test<span style="font-family: 宋体">&#8221;就是工程的名称，在</span>IntelliJ IDEA<span style="font-family: 宋体">就是</span>Module<span style="font-family: 宋体">的名称，因为可以有多个</span>Module<span style="font-family: 宋体">。我们只要&#8220;</span>Make Module<span style="font-family: 宋体">&#8221;的时候，编译后的文件，都会自动发布过来。这里我只有一个</span>Module<span style="font-family: 宋体">，就是&#8220;</span>Test<span style="font-family: 宋体">&#8221;，所以下面就一个&#8220;</span>Test<span style="font-family: 宋体">&#8221;目录。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">现在就是&#8220;</span>test<span style="font-family: 宋体">&#8221;，这个目录就是我们测试用例，我们所有的测试类和资源文件，都会编译到这里了，下面是我们的工程名，记住，在</span>IntelliJ IDEA<span style="font-family: 宋体">里面叫</span>Module<span style="font-family: 宋体">，呵呵</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">&#8220;</span>Exploded<span style="font-family: 宋体">&#8221;就是真正运行的目录，因为我们可以有多个&#8220;</span>Module<span style="font-family: 宋体">&#8221;，当在</span>ide<span style="font-family: 宋体">里面选择运行哪个&#8220;</span>Module<span style="font-family: 宋体">&#8221;的时候，环境将指定到哪里目录，然后就是&#8220;</span>TestWeb<span style="font-family: 宋体">&#8221;，这个就是我们运行的</span>Web<span style="font-family: 宋体">程序的别名，它会自动给你加上&#8220;</span>web<span style="font-family: 宋体">&#8221;用于区分吧。然后这个&#8220;</span>TestWeb<span style="font-family: 宋体">&#8221;就是我们当前环境的目录了，如果你仔细看，你会发现，这个目录符合我们发布到容器里面的目录，我的意思是说，在&#8220;</span>WEB-INF<span style="font-family: 宋体">&#8221;下面竟然会有&#8220;</span>classes<span style="font-family: 宋体">&#8221;、&#8220;</span>lib<span style="font-family: 宋体">&#8221;目录，原来才知道这都是由容器自动完成，只是开发目录和平常的目录有变化，但是运行目录没有区别。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span>IntelliJ IDEA<span style="font-family: 宋体">不支持自动编译，也就是说不能像</span>Eclipse<span style="font-family: 宋体">那样，自动编译</span>class<span style="font-family: 宋体">，</span>IntelliJ IDEA<span style="font-family: 宋体">必须由我们</span>Make<span style="font-family: 宋体">进行。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span>IntelliJ IDEA<span style="font-family: 宋体">不支持热发布，我们平常在</span>Eclipse<span style="font-family: 宋体">里面改页面的时候不需要启动容器，直接就能刷新过来了，但是</span>IntelliJ IDEA<span style="font-family: 宋体">不行，因为需要</span>Make<span style="font-family: 宋体">，和输出</span>(out)<span style="font-family: 宋体">，这里需要一些技巧，马上就讲到。</span></p>
<div style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 4pt; margin-left: 46.8pt; border-left: medium none; margin-right: 46.8pt; padding-top: 0cm; border-bottom: #4f81bd 1pt solid">
<p style="margin: 10pt 0cm 14pt">IntelliJ IDEA<span style="font-family: 宋体">部署技巧</span></p>
</div>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">上面的目录结构，都是工具默认的，这里我们改变它的目录结构，来提高开发效率。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: Wingdings">&#216;&nbsp;</span><span style="font-family: 宋体">刚才说到，</span>IntelliJ IDEA<span style="font-family: 宋体">不支持热发布，就因为改个页面我们去重启容器，是很浪费时间的，也很麻烦。我们通过改变目录来解决这个问题。</span></p>
<p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n&nbsp;</span><span style="font-family: 宋体">在&#8220;</span>Project Settings<span style="font-family: 宋体">&#8221;里面&#8220;</span>Modules<span style="font-family: 宋体">&#8221;也就是我们工程的名字，然后&#8220;</span>Paths<span style="font-family: 宋体">&#8221;，这是没改成前的图：<br />
<img height="542" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA02.JPG" width="568" border="0" /></span></p>
<table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1">
    <tbody>
    </tbody>
</table>
<p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n&nbsp;</span><span style="font-family: 宋体">我们把目录改变后的如下：<br />
<img height="620" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA03.JPG" width="557" border="0" /></span></p>
<table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1">
    <tbody>
    </tbody>
</table>
<p style="margin-left: 42pt; text-indent: 0cm"><span style="font-family: 宋体">然后我们&#8220;</span>Make Module<span style="font-family: 宋体">&#8220;，发现文件都编译到</span>classes<span style="font-family: 宋体">下了。和我们以前的一样了吧。哈</span></p>
<p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n&nbsp;</span><span style="font-family: 宋体">然后还是在&#8220;</span>Project Settings<span style="font-family: 宋体">&#8221;里面，&#8220;</span>Modules<span style="font-family: 宋体">&#8221;然后点来你右边的</span>Modules<span style="font-family: 宋体">名字，你会发现有个</span>Web<span style="font-family: 宋体">的子节点，这里记得光标要放在&#8220;</span>Web<span style="font-family: 宋体">&#8221;节点上，然后看右边有个配置页面，未改变前如图：<br />
<img height="395" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA04.JPG" width="557" border="0" /></span></p>
<table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1">
    <tbody>
    </tbody>
</table>
<p style="margin-left: 42pt; text-indent: 0cm"><span style="font-family: 宋体">到这里，你会发现有个</span>Web Facet Exploede Directory<span style="font-family: 宋体">，然后我们改变这个目录，指向当前工程的</span>Web<span style="font-family: 宋体">跟节点即可。</span></p>
<p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n&nbsp;</span><span style="font-family: 宋体">如下图：<br />
<img height="389" alt="" src="http://www.blogjava.net/images/blogjava_net/yifeng/IntelliJ IDEA/IntelliJIDEA05.JPG" width="557" border="0" /><br />
<br />
<br />
<span style="color: #ff0000">*:注意 Exclude from module content勾去掉，不然会有webroot不见了的现象</span></span></p>
<table style="border-right: medium none; border-top: medium none; margin-left: 42pt; border-left: medium none; width: 438.3pt; border-bottom: medium none; border-collapse: collapse" cellspacing="0" cellpadding="0" width="584" border="1">
    <tbody>
    </tbody>
</table>
<p style="margin-left: 42pt; text-indent: -21pt"><span style="font-family: Wingdings">n&nbsp;</span><span style="font-family: 宋体">然后我们启动容器，随便的编辑页面，然后点击刷新，发现页面立即能显示出来了，哈，这样开发是不是省去很多重启容器的时间，呵呵。</span></p>
<br />
<br />
<br />
<hr />
&nbsp;<br />
<span style="color: red">作者：周大庆（zhoudaqing） <br />
</span><span style="color: red">网址：<strong><font color="#ff0000">http://www.blogjava.net/yifeng</font></strong></span><br />
<span style="color: red">&gt;&gt;&gt;<strong>转载请注明出处！</strong>&lt;&lt;&lt; </span>
<img src ="http://www.blogjava.net/yifeng/aggbug/224903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-08-27 05:21 <a href="http://www.blogjava.net/yifeng/archive/2008/08/27/224903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IntelliJ IDEA常用技巧</title><link>http://www.blogjava.net/yifeng/archive/2008/08/24/223941.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sat, 23 Aug 2008 22:06:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/08/24/223941.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/223941.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/08/24/223941.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/223941.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/223941.html</trackback:ping><description><![CDATA[<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">不知不觉，用InelliJ IDEA也有将近1年的时间了，自从使用了它，感觉大大提高自己的开发效率，以及非常智能的提示，就像官方所说&#8220;The Most Intelligent Java IDE&#8221;，用用就知道它的强大之处，下面是它的快捷键总结：<br />
<br />
<br />
<br />
</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">1<span style="font-family: 宋体">、写代码时用</span><strong><span style="color: #008080">Alt-Insert</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Code|Generate&#8230;</span></strong><span style="font-family: 宋体">）可以创建类里面任何字段的</span>getter<span style="font-family: 宋体">与</span>setter<span style="font-family: 宋体">方法。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img height="128" alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821917.gif" width="130" _counted="undefined" /></span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">&lt;?xml:namespace prefix = v ns = "urn:schemas-<a href="http://www.stupai.com/computer" target="_blank">microsoft</a>-com:vml" /&gt;microsoft-com:vml" /&gt;aspectratio="t" v:ext="edit"&gt;</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">2<span style="font-family: 宋体">、右键点击断点标记（在文本的左边栏里）激活速查菜单，你可以快速设置</span><strong><span style="color: #008080">enable/disable</span></strong><span style="font-family: 宋体">断点或者条件它的属性。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821910.gif" _counted="undefined" />&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">3<span style="font-family: 宋体">、</span>CodeCompletion<span style="font-family: 宋体">（代码完成）属性里的一个特殊的变量是，激活</span><strong><span style="color: #008080">Ctrl-Alt-Space</span></strong><span style="font-family: 宋体">可以完成在或不在当前<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>里的类名。如果类没有引入则</span>import<span style="font-family: 宋体">标志会自动创建。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821413.gif" _counted="undefined" /></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">4<span style="font-family: 宋体">、使用</span><strong><span style="color: #008080">Ctrl-Shift-V</span></strong><span style="font-family: 宋体">快捷键可以将最近使用的剪贴板内容选择插入到文本。使用时<a href="http://www.chinaitpower.com/System/index.html" target="_blank">系统</a>会弹出一个含有剪贴内容的对话框，从中你可以选择你要粘贴的部分。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">5<span style="font-family: 宋体">、利用</span>CodeCompletion<span style="font-family: 宋体">（代码完成）属性可以快速地在代码中完成各种不同地语句，方法是先键入一个类名地前几个字母然后再用</span><strong><span style="color: #008080">Ctrl-Space</span></strong><span style="font-family: 宋体">完成全称。如果有多个选项，它们会列在速查列表里。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821119.gif" _counted="undefined" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Ctrl-/</span></strong><span style="font-family: 宋体">与</span><strong><span style="color: #008080">Ctrl-Shift-/</span></strong><span style="font-family: 宋体">来注释</span>/<span style="font-family: 宋体">反注释代码行与代码块。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">-/<span style="font-family: 宋体">用单行注释标记（&#8220;</span><strong><span style="color: #008080">//&#8230;</span></strong><span style="font-family: 宋体">&#8221;）来注释</span>/<span style="font-family: 宋体">反注释当前行或者选择地代码块。而</span>Ctrl-Shift-/<span style="font-family: 宋体">则可以用块注释标记（&#8220;</span><strong><span style="color: #008080">/*&#8230;*/</span></strong><span style="font-family: 宋体">&#8221;）把所选块包围起来。要反注释一个代码块就在块中任何一个地方按</span>Ctrl-Shift-/<span style="font-family: 宋体">即可。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">7<span style="font-family: 宋体">、按</span><strong><span style="color: #008080">Alt-Q</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">View|Context Info</span></strong><span style="font-family: 宋体">）可以不需要移动代码就能查看当前方法地声明。连续按两次会显示当前所编辑的类名。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">8<span style="font-family: 宋体">、使用</span><strong><span style="color: #008080">Refactor|Copy Class&#8230;</span></strong><span style="font-family: 宋体">可以创建一个所选择的类的&#8220;副本&#8221;。这一点很有用，比如，在你想要创建一个大部分内容都和已存在类相同的类时。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">9<span style="font-family: 宋体">、在编辑器里</span><strong><span style="color: #008080">Ctrl-D</span></strong><span style="font-family: 宋体">可以复制选择的块或者没有所选块是的当前行。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">10<span style="font-family: 宋体">、</span><strong><span style="color: #008080">Ctrl-W</span></strong><span style="font-family: 宋体">（选择字）在编辑器里的功能是先选择脱<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>处的单词，然后选择源代码的扩展区域。举例来说，先选择一个方法名，然后是调用这个方法的表达式，然后是整个语句，然后包容块，等等。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">11<span style="font-family: 宋体">、如果你不想让指示事件细节的&#8220;亮球&#8221;图标在编辑器上显示，通过按</span><strong><span style="color: #008080">Alt-Enter</span></strong><span style="font-family: 宋体">组合键打开所有事件列表然后用鼠标点击它就可以把这个事件文本附件的亮球置成非活动状态。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">这样以后就不会有指示特殊事件的亮球出现了，但是你仍然可以用</span><strong><span style="color: #008080">Alt-Enter</span></strong><span style="font-family: 宋体">快捷键使用它。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">12<span style="font-family: 宋体">、在使用</span>CodeCompletion<span style="font-family: 宋体">时，可以用逗点（</span>.<span style="font-family: 宋体">）<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>，逗号（，）分号（；），空格和其它<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>输入弹出列表里的当前高亮部分。选择的名字会随着输入的<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>自动输入到编辑器里。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">13<span style="font-family: 宋体">、在任何工具窗口里使用</span><strong><span style="color: #008080">Escape</span></strong><span style="font-family: 宋体">键都可以把焦点移到编辑器上。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.5pt" align="left"><span style="font-size: small"><strong><span style="color: #008080">Shift-Escape</span></strong><span style="font-family: 宋体">不仅可以把焦点移到编辑器上而且还可以隐藏当前（或最后活动的）工具窗口。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">F12<span style="font-family: 宋体">键把焦点从编辑器移到最近使用的工具窗口。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">14<span style="font-family: 宋体">、在调试<a href="http://www.chinaitpower.com/Dev/index.html" target="_blank">程序</a>时查看任何表达式值的一个容易的方法就是在编辑器中选择文本（可以按几次</span><strong><span style="color: #008080">Ctrl-W</span></strong><span style="font-family: 宋体">组合键更有效地执行这个操作）然后按</span>Alt-F8<span style="font-family: 宋体">。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">15<span style="font-family: 宋体">、要打开编辑器脱<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>处使用的类或者方法</span>Java<span style="font-family: 宋体">文档的浏览器，就按</span><strong><span style="color: #008080">Shift-F1</span></strong><span style="font-family: 宋体">（右键菜单的</span><strong><span style="color: #008080">External JavaDoc</span></strong><span style="font-family: 宋体">）。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">要使用这个功能须要把加入浏览器的路径，在&#8220;</span><strong><span style="color: #008080">General</span></strong><span style="font-family: 宋体">&#8221;选项中设置（</span><strong><span style="color: #008080">Options | IDE Settings</span></strong><span style="font-family: 宋体">），另外还要把创建的</span>Java<span style="font-family: 宋体">文档加入到工程中（</span><strong><span style="color: #008080">File | Project Properties</span></strong><span style="font-family: 宋体">）。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">16<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Ctrl-F12</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">View | File Structure Popup</span></strong><span style="font-family: 宋体">）键你可以在当前编辑的<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>中快速导航。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">这时它会显示当前类的成员列表。选中一个要导航的元素然后按</span>Enter<span style="font-family: 宋体">键或</span>F4<span style="font-family: 宋体">键。要轻松地定位到列表中的一个条目，只需键入它的名字即可。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">17<span style="font-family: 宋体">、在代码中把光标置于标记符或者它的检查点上再按</span><strong><span style="color: #008080">Alt-F7</span></strong><span style="font-family: 宋体">（右键菜单中的</span><strong><span style="color: #008080">Find Usages&#8230;</span></strong><span style="font-family: 宋体">）会很快地查找到在整个工程中使用地某一个类、方法或者变量的位置。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">18<span style="font-family: 宋体">、按</span><strong><span style="color: #008080">Ctrl-N</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Go to | Class&#8230;</span></strong><span style="font-family: 宋体">）再键入类的名字可以快速地在编辑器里打开任何一个类。从显示出来的下拉列表里选择类。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821482.gif" _counted="undefined" />同样的方法你可以通过使用</span><strong><span style="color: #008080">Ctrl-Shift-N</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Go to | File&#8230;</span></strong><span style="font-family: 宋体">）打开工程中的非</span>Java<span style="font-family: 宋体"><a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">19<span style="font-family: 宋体">、要导航代码中一些地方使用到的类、方法或者变量的声明，把光标放在查看项上再按</span>Ctrl-B<span style="font-family: 宋体">即可。也可以通过按</span>Ctrl<span style="font-family: 宋体">键的同时在查看点上单击鼠标键调转到声明处。</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821746.gif" _counted="undefined" />20<span style="font-family: 宋体">、把光标放到查看点上再按</span><strong><span style="color: #008080">Ctrl-Alt-B</span></strong><span style="font-family: 宋体">可以导航到一个抽象方法的实现代码。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">21<span style="font-family: 宋体">、要看一个所选择的类的继承层次，按</span><strong><span style="color: #008080">Ctrl-H</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Browse Type Hierarchy</span></strong><span style="font-family: 宋体">）即可。也可以激活编辑器中的继承关系视图查看当前编辑类的继承关系。</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821626.gif" _counted="undefined" /></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">22<span style="font-family: 宋体">、使用</span><strong><span style="color: #008080">Ctrl-Shift-F7</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Search | Highlight Usages in File</span></strong><span style="font-family: 宋体">）可以快速高亮显示当前<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>中某一变量的使用地方。按</span>Escape<span style="font-family: 宋体">清除高亮显示。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">23<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Alt-F3</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Search | Incremental Search</span></strong><span style="font-family: 宋体">）在编辑器中实现快速查查找功能。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">在&#8220;</span><strong><span style="color: #008080">Search for:</span></strong><span style="font-family: 宋体">&#8221;提示工具里输入<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>，使用箭头键朝前和朝后搜索。按</span><strong><span style="color: #008080">Escape</span></strong><span style="font-family: 宋体">退出。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">24<span style="font-family: 宋体">、按</span><strong><span style="color: #008080">Ctrl-J</span></strong><span style="font-family: 宋体">组合键来执行一些你记不起来的</span><strong><span style="color: #008080">Live Template</span></strong><span style="font-family: 宋体">缩写。比如，键&#8220;</span><strong><span style="color: #008080">it</span></strong><span style="font-family: 宋体">&#8221;然后按</span><strong><span style="color: #008080">Ctrl-J</span></strong><span style="font-family: 宋体">看看有什么发生。</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131821991.gif" _counted="undefined" /></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">25<span style="font-family: 宋体">、</span><strong><span style="color: #008080">Introduce Variable</span></strong><span style="font-family: 宋体">整合帮助你简化代码中复杂的声明。举个例子，在下面的代码片断里，在代码中选择一个表达式：</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822339.gif" _counted="undefined" />&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">然后按</span><strong><span style="color: #008080">Ctrl-Alt-V</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Refactor | Introduce Variable</span></strong><span style="font-family: 宋体">）就会出现下面的结果：</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822884.gif" _counted="undefined" /></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">26<span style="font-family: 宋体">、</span><strong><span style="color: #008080">Ctrl-Shift-J</span></strong><span style="font-family: 宋体">快捷键把两行合成一行并把不必要的空格去掉以匹配你的代码格式。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">27<span style="font-family: 宋体">、</span><strong><span style="color: #008080">Ctrl-Shift-Backspace</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Go to | Last Edit Location</span></strong><span style="font-family: 宋体">）让你调转到代码中所做改变的最后一个地方。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">多按几次</span><strong><span style="color: #008080">Ctrl-Shift-Backspace</span></strong><span style="font-family: 宋体">查看更深的修改历史。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">28<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">Tools | Reformat Code&#8230;</span></strong><span style="font-family: 宋体">根据你的代码样式参考（查看</span><strong><span style="color: #008080">Options | IDE Setting | Code Style</span></strong><span style="font-family: 宋体">）格式化代码。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">使用</span><strong><span style="color: #008080">Tools | Optimize Imports&#8230;</span></strong><span style="font-family: 宋体">可以根据设置（查看</span><strong><span style="color: #008080">Options | IDE Setting | Code Style | Imports</span></strong><span style="font-family: 宋体">）自动&#8220;优化&#8221;</span><strong><span style="color: #008080">imports</span></strong><span style="font-family: 宋体">（清除无用的</span><strong><span style="color: #008080">imports</span></strong><span style="font-family: 宋体">等）。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">29<span style="font-family: 宋体">、使用</span>IDEA<span style="font-family: 宋体">的</span><strong><span style="color: #008080">Live Templates | Live Templates</span></strong><span style="font-family: 宋体">让你在眨眼间创建许多典型代码。比如，在一个方法里键入</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822461.gif" _counted="undefined" /></span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">再按</span><strong><span style="color: #008080">Tab</span></strong><span style="font-family: 宋体">键看有什么事情发生了。</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822475.gif" _counted="undefined" /></span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">用</span>Tab<span style="font-family: 宋体">键在不同的模板域内移动。查看</span><strong><span style="color: #008080">Options | Live Templates</span></strong><span style="font-family: 宋体">获取更多的细节。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">30<span style="font-family: 宋体">、要查看一个<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>中修改的本地历史，激活右键菜单里的</span><strong><span style="color: #008080">Local <a href="http://www.chinaitpower.com/Dev/Programme/VC/index.html" target="_blank">VC</a>S | Show History&#8230;</span></strong><span style="font-family: 宋体">。也许你可以导航不同的<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>版本，看看它们的不同之处再回滚到以前的任何一个版本吧。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-family: 宋体"><span style="font-size: small">使用同样的右键菜单条目还可以看到一个目录里修改的历史。有了这个特性你就不会丢失任何代码了。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">31<span style="font-family: 宋体">、如果要了解主菜单里每一个条目的用途，把鼠标指针移到菜单条目上再应用<a href="http://www.chinaitpower.com/Dev/index.html" target="_blank">程序</a>框架的底部的状态栏里就会显示它们的一些简短描述，也许会对你有帮助。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">32<span style="font-family: 宋体">、要在编辑器里显示方法间的分隔线，打开</span><strong><span style="color: #008080">Options | IDE Settings | Editor</span></strong><span style="font-family: 宋体">，选中&#8220;</span><strong><span style="color: #008080">Show method separators</span></strong><span style="font-family: 宋体">&#8221;检查盒（</span><strong><span style="color: #008080">checkbox</span></strong><span style="font-family: 宋体">）。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">33<span style="font-family: 宋体">、<strong><span style="color: #008080">用</span></strong></span><strong><span style="color: #008080">Alt-Up</span></strong><span style="font-family: 宋体">和</span><strong><span style="color: #008080">Alt-Down</span></strong><span style="font-family: 宋体">键可以在编辑器里不同的方法之间快速移动。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">34<span style="font-family: 宋体">、用</span><strong><span style="color: #008080">F2/Shift-F2</span></strong><span style="font-family: 宋体">键在高亮显示的语法错误间跳转。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">用</span><strong><span style="color: #008080">Ctrl-Alt-Down/Ctrl-Alt-Up</span></strong><span style="font-family: 宋体">快捷键则可以在编译器错误信息或者查找操作结果间跳转。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">35<span style="font-family: 宋体">、通过按</span><strong><span style="color: #008080">Ctrl-O</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Code | Override Methods&#8230;</span></strong><span style="font-family: 宋体">）可以很容易地重载基本类地方法。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">要完成当前类</span><strong><span style="color: #008080">implements</span></strong><span style="font-family: 宋体">的（或者抽象基本类的）接口的方法，就使用</span><strong><span style="color: #008080">Ctrl-I</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Code | Implement Methods&#8230;</span></strong><span style="font-family: 宋体">）。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">36<span style="font-family: 宋体">、如果光标置于一个方法调用的括号间，按</span><strong><span style="color: #008080">Ctrl-P</span></strong><span style="font-family: 宋体">会显示一个可用参数的列表。</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822703.gif" _counted="undefined" /></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">37<span style="font-family: 宋体">、要快速查看编辑器脱<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>处使用的类或方法的</span>Java<span style="font-family: 宋体">文档，按</span><strong><span style="color: #008080">Ctrl-Q</span></strong><span style="font-family: 宋体">（在弹出菜单的</span><strong><span style="color: #008080">Show Quick JavaDoc</span></strong><span style="font-family: 宋体">里）即可。</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822202.gif" _counted="undefined" /></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">38<span style="font-family: 宋体">、像</span><strong><span style="color: #008080">Ctrl-Q</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Show Quick JavaDoc</span></strong><span style="font-family: 宋体">显示简洁</span>Java<span style="font-family: 宋体">文档），</span><strong><span style="color: #008080">Ctrl-P</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Show Parameter Info</span></strong><span style="font-family: 宋体">显示参数信息），</span><strong><span style="color: #008080">Ctrl-B</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Go to Declaration</span></strong><span style="font-family: 宋体">跳转到声明），</span><strong><span style="color: #008080">Shift-F1</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">External JavaDoc</span></strong><span style="font-family: 宋体">外部</span>Java<span style="font-family: 宋体">文档）以及其它一些快捷键不仅可以在编辑器里使用，也可以应用在代码完成右键列表里。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">39<span style="font-family: 宋体">、</span><strong><span style="color: #008080">Ctrl-E</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">View | Recent Files</span></strong><span style="font-family: 宋体">）弹出最近访问的<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>右键列表。选中<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>按</span><strong><span style="color: #008080">Enter</span></strong><span style="font-family: 宋体">键打开。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">40<span style="font-family: 宋体">、在</span>IDEA<span style="font-family: 宋体">中可以很容易地对你的类，方法以及变量进行重命名并在所有使用到它们的地方自动更正。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">试一下，把编辑器脱<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>置于任何一个变量名字上然后按</span><strong><span style="color: #008080">Shift-F6</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">Refactor | Rename&#8230;</span></strong><span style="font-family: 宋体">）。在对话框里键入要显示地新名字再按</span>Enter<span style="font-family: 宋体">。你会浏览到使用这个变量地所有地方然后按&#8220;</span><strong><span style="color: #008080">Do Refactor</span></strong><span style="font-family: 宋体">&#8221;按钮结束重命名操作。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">41<span style="font-family: 宋体">、要在任何视图（</span><strong><span style="color: #008080">Project View</span></strong><span style="font-family: 宋体">工程视图，</span><strong><span style="color: #008080">Structure View</span></strong><span style="font-family: 宋体">结构视图或者其它视图）里快速</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">选择当前编辑地部分（类，<a href="http://www.chinaitpower.com/Soft/Tools/File/index.html" target="_blank">文件</a>，方法或者字段），按</span><strong><span style="color: #008080">Alt-F1</span></strong><span style="font-family: 宋体">（</span><strong><span style="color: #008080">View | Select in&#8230;</span></strong><span style="font-family: 宋体">）。</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822274.gif" _counted="undefined" /></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">42<span style="font-family: 宋体">、在&#8220;</span><strong><span style="color: #008080">new</span></strong><span style="font-family: 宋体">&#8221;<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>后实例化一个已知类型对象时也许你会用到</span>SmartType<span style="font-family: 宋体">代码完成这个特性。比如，键入</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822960.gif" _counted="undefined" /> </p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">再按</span><strong><span style="color: #008080">Ctrl-Shift-Space</span></strong><span style="font-family: 宋体">：</span></span>&nbsp;</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822657.gif" _counted="undefined" /></span></p>
<br />
<br />
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">43<span style="font-family: 宋体">、通过使用</span>SmartType<span style="font-family: 宋体">代码完成，在</span>IDEA<span style="font-family: 宋体">中创建接口的整个匿名</span><strong><span style="color: teal">implementation</span></strong><span style="font-family: 宋体">也是非常容易的，比如，对于一些</span>listener<span style="font-family: 宋体">（监听器），可以键入</span></span></p>
<p style="text-indent: 22.2pt" align="left"><span style="font-family: 宋体"><span style="font-size: small">&nbsp;Component component;</span></span></p>
<p style="text-indent: 22.2pt" align="left"><span style="font-family: 宋体"><span style="font-size: small">&nbsp;component.addMouseListener(</span></span></p>
<p style="text-indent: 22.2pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">&nbsp;&nbsp;&nbsp; new </span><strong><em><span style="color: #005555; font-family: Verdana">&lt;caret is here&gt;</span></em></strong>&nbsp;</span></p>
<p style="text-indent: 22.2pt" align="left"><span style="font-family: 宋体"><span style="font-size: small">&nbsp;);</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">然后再按</span><strong><span style="color: teal">Ctrl-Shift-Space</span></strong><span style="font-family: 宋体">看看有什么发生了。</span></span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 19.4pt" align="left"><span style="font-size: small">44<span style="font-family: 宋体">、在你需要设置一个已知类型的表达式的值时用</span>SmartType<span style="font-family: 宋体">代码完成也很有帮助。比如，键入</span></span></p>
<p style="text-indent: 22.2pt" align="left"><span style="font-size: small"><span style="font-family: 宋体">String s = (</span><strong><em><span style="color: #005555; font-family: Verdana">&lt;caret is here&gt;</span></em></strong>&nbsp;</span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt"><span style="font-family: 宋体">再按</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Ctrl-Shift-Space</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">看看会有什么出现。</span></span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">45</span><span style="font-family: 宋体"><span style="font-size: 10.5pt">、在所有视图里都提供了速查功能：在树里只需键入<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>就可以快速定位到一个条目。</span></span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">46</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">、当你想用代码片断捕捉异常时，在编辑器里选中这个片断，按</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Ctrl-Alt-T</span></strong><span style="font-size: 10.5pt"><span style="font-family: 宋体">（</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Code | Surround with&#8230;</span></strong><span style="font-size: 10.5pt"><span style="font-family: 宋体">）然后选择&#8220;</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">try/catch</span></strong><span style="font-size: 10.5pt"><span style="font-family: 宋体">&#8221;。它会自动产生代码片断中抛出的所有异常的捕捉块。在</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Options | File Templates | Code tab</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">中你还可以自己定制产生捕捉块的模板。</span></span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-family: 宋体"><span style="font-size: 10.5pt">用列表中的其它项可以包围别的一些结构。</span></span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822252.gif" _counted="undefined" /></span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">47</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">、在使用代码完成时，用</span></span><span style="font-size: 10.5pt; font-family: 'Times New Roman'">Tab</span><span style="font-family: 宋体"><span style="font-size: 10.5pt">键可以输入弹出列表里的高亮显示部分。</span></span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt"><span style="font-family: 宋体">不像用</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Enter</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">键接受输入，这个选中的名字会覆盖掉脱<a href="http://www.chinaitpower.com/Dev/Programme/VC/Str/index.html" target="_blank">字符</a>右边名字的其它部分。这一点在用一个方法或者变量名替换另一个时特别有用。</span></span></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: 10.5pt; font-family: 'Times New Roman'">48</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">、在声明一个变量时代码完成特性会给你显示一个建议名。比如，开始键入&#8220;</span></span><span style="font-size: 10.5pt; font-family: 'Times New Roman'">private FileOutputStream</span><span style="font-size: 10.5pt"><span style="font-family: 宋体">&#8221;然后按</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Ctrl-Space</span></strong></p>
<p style="text-indent: 19.4pt" align="left"><span style="font-size: small"><span style="font-size: 10.5pt"><span style="font-family: 宋体"><img alt="" src="http://www.ziliaonet.com/tech/UploadPic/2006-7/2006714131822498.gif" _counted="undefined" />在</span></span><strong><span style="font-size: 10.5pt; color: teal; font-family: 'Times New Roman'">Options | IDE Setting | Code Style</span></strong><span style="font-family: 宋体"><span style="font-size: 10.5pt">中还可以为本地变量，参数，实例及静态字段定制名字。</span></span></span></p>
<img src ="http://www.blogjava.net/yifeng/aggbug/223941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-08-24 06:06 <a href="http://www.blogjava.net/yifeng/archive/2008/08/24/223941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>