<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Beans Binding Example - NetBeans IDE Sample Applications</title>
    <meta name="description" content="A Java Swing example program that uses the Beans Binding API to bind a GUI form to a database.">
    <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>Beans Binding Example</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/gui-client.jpg" alt="" align="top" height="150" width="150">
            <!-- remove this line if no flash demo available -->  
        </div>
        
        <p>A simple editor of client information that demonstrates use of Beans Binding. The sample includes examples of converters and validators.</p>
    </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</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; Java &gt; Client Editor</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:%20Project%20Matisse%20Client%20Editor%20with%20Beans%20Binding%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>