<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Building a Rich-Client Application on top of NetBeans - NetBeans IDE Sample Applications</title>
    <meta name="description" content="A Java Rich Client Platform (RCP) application that builds a simple paint program on top of the NetBeans Platform.">
    <link rel="stylesheet" href="https://netbeans.org/netbeans.css">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <link rel="stylesheet" type="text/css" href="../../netbeans.css" media="screen">
    <link rel="stylesheet" type="text/css" href="../netbeans_sample.css" media="screen">
</head>
<body>
<h1>Get Inspired. Get Started.</h1>
<table class="b-none" width="100%">
<tr class="valign-top">
<td>
    
    <!-- +++++++++++++++++ begin insert new content +++++++++++++++++ -->
                
    <!-- +++++ Add Sample Description and Image +++++ -->
    <div id="sampledesc"><!-- begin sampledesc -->
        <h2>Building a Rich-Client Application on Top of NetBeans</h2>
        
        <div id="samplethumb"><!-- add sample image and link here -->
            <!-- Image is only linked when flass demo is available -->    
            <img src="../../images_www/sample-catalog/PaintApplication.png" alt="feedreader image" align="top" height="150" width="140">
        </div>
        
        <p>This sample illustrates how to build a Rich-Client Application on top of the  NetBeans Platform. In this case, a simple Paint Application is  provided, allowing the user to paint on the screen and save the results.</p>
        <!-- Remove list when demo or tutorial unavailable -->
        <ul>
            <li><a href="http://platform.netbeans.org/tutorials/nbm-paintapp.html">Read the tutorial</a></li>
        </ul>
        
    </div><!-- end sampledesc -->

                
    <!-- +++++ Add Required Software Here +++++ -->
    <br style="clear:both;">
    <div style="float:left;width:45%;">
        <h3><b>Get NetBeans IDE</b></h3>
        <br>
        <a href="../../downloads/index.html">
            <img src="../../images_www/v5/download-nb-button3.gif" alt="Download NetBeans" class="align-left b-none" height="27" width="165" style="margin:4px 10px 4px 0;clear:right;">
        </a>
        <br style="clear:both;">
        <br>
        <p class="orange font-13">NetBeans IDE 6.9, 7.0, 7.1, 7.2, Java bundle</p>
        <p>&nbsp;</p>
    </div>
    
    <!-- +++++  Add Sample Location Here +++++ -->
    <div style="float:right;width:45%;">
        <h3><b>Get the Sample</b></h3>
        <!-- Commenting out image because it's only used for samples on the Update Center
                    <img src="../../images_www/v5/universal-download.png" alt="Download NetBeans" class="align-left" class="b-none" height="32" width="32"> -->
        <br style="clear:both;">
        <p><img src="../../images_www/v4/arr_r3.gif" alt="arrow"> This sample comes bundled with NetBeans IDE</p>
        <p><img src="../../images_www/v4/arr_r3.gif" alt="arrow"> Choose: File &gt; New Project &gt; Samples &gt; NetBeans Modules &gt; Paint Application</p>
    </div>
    <br style="clear:both;">
    
    <!-- +++++++++++++++++ end insert new content +++++++++++++++++ -->

    <div class="b-top">
        <br>
        <img src="../../images_www/sample-catalog/update-center.png" alt="Download NetBeans" class="align-left b-none" height="32" width="32">
             <h3><b>&nbsp;NetBeans Update Center</b></h3>
        <p>&nbsp;</p>
        <p>The Update Center is your source for accessing the latest samples
            highlighting emerging technologies, plug-ins from NetBeans and our
            partners, and patches to make sure your IDE is running smoothly. As
        fast as we make it, we'll ship it to you via the Update Center.</p>
        <p><b>Start now by having the latest Top 5 samples delivered  directly to your IDE.</b></p>
        <br>
        <div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Paint%20Application%20Sample">Send Feedback on This Tutorial</a></div>
    </div>
</td>                                    
<td style="padding: 25px 0px 0px 20px;" width="170" class="b-left">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="400" width="154">
    <script type="text/javascript">
            document.write('<param name="movie" value="../../images_www/sample-catalog/menu.swf'+window.location.search+'" />');
    </script>
    <param name="quality" value="best" />
    <param name="play" value="true" />
    <script type="text/javascript">
            document.write('<embed height="400" pluginspage="http://www.macromedia.com/go/getflashplayer" src="../../images_www/sample-catalog/menu.swf'+window.location.search+'" type="application/x-shockwave-flash" width="154" quality="best" play="true">');
    </script>
</object>
<p class="align-center"><small><a href="master-index.html">View all samples</a></small></p>
</td>
</tr>

</table>
</body>
</html>