<html>

    <head>

        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

        <link rel="Stylesheet" href="https://netbeans.org/netbeans.css" type="text/css">

        <title>Visual Library</title>

        <style type="text/css"><!--
            table.screenshots {
                border: 0px;
            }
            table.screenshots tr.images td {
                vertical-align: bottom;
                text-align: center;
                width: 240px;
            }
            table.screenshots tr.labels td {
                vertical-align: top;
                text-align: center;
                width: 240px;
            }
            table.screenshots tr.footer td {
                text-align: right;
                --></style>

        </head>

        <body>

            <h1>NetBeans Visual Library</h1>

            <p>
                The NetBeans Visual Library provides a set of reusable, predefined, and extensible Java components, 
                called "widgets". Each widget has, built into it, various features, such as actions, layouts,
                and borders. When you compose widgets together, you can quickly and easily visualize
                data to the user. Combined with other NetBeans APIs, the NetBeans Visual Library lets
                you create interactive UIs, with drag-and-drop features commonly found in designer software.
            </p>

            <p>
                Java SE applications, using JavaFX, Swing, or both, as well as Java applets, can benefit
                from the widgets provided by the NetBeans Visual Library.
            </p>

            <p>To provide context and help understand its purpose, 
                here are screenshots of visualizations that
                have been created with the NetBeans Visual Library in real applications.</p>

            <table class="screenshots">
                <tr class="images">
                    <td><a href="screenshots/polaris.jpg"><img src="screenshots/polaris-thumb.jpg"></a></td>
                    <td><a href="screenshots/praxislive.jpg"><img src="screenshots/praxislive-thumb.jpg"></a></td>
                    <td><a href="screenshots/glotaran.png"><img src="screenshots/glotaran-thumb.png"></a></td>
                <tr class="labels">
                    <td><a href="http://mms.gsfc.nasa.gov/">NASA Polaris Slipstream</a></td>
                    <td><a href="http://www.praxislive.org">PraxisLIVE</a></td>
                    <td><a href="http://glotaran.org">Glotaran</a></td>
                <tr class="images">
                    <td><a href="screenshots/maltego.png"><img src="screenshots/maltego-thumb.png"></a></td>
                    <td><a href="screenshots/odyssey.png"><img src="screenshots/odyssey-thumb.png"></a></td>
                    <td><a href="screenshots/alipay.jpg"><img src="screenshots/alipay-thumb.jpg"></a></td>
                <tr class="labels">
                    <td><a href="http://www.paterva.com/web6/">Maltego</a></td>
                    <td><a href="https://blogs.oracle.com/geertjan/entry/combating_organized_crime_terrorism_on">European Union Odyssey</a></td>
                    <td><a href="http://netbeans.dzone.com/nb-china-online-payment-platform">Alipay</a></td>
            </table>

            <p><img src="run.png"><a href="examples.html"> Examples</a> - Download and explore a large set of examples.</p>

            <h2>Documentation</h2>

            <p><img src="tutorial.png"><a title="Visual Library API javadoc" href="http://bits.netbeans.org/dev/javadoc/org-netbeans-api-visual/overview-summary.html">Visual Library API javadoc</a></p>
            <p><img src="tutorial.png"><a title="Official Documentation" href="http://bits.netbeans.org/dev/javadoc/org-netbeans-api-visual/org/netbeans/api/visual/widget/doc-files/documentation.html">Official Documentation</a></p>
            <p><img src="tutorial.png"><a title="FAQ" href="https://platform.netbeans.org/graph/faq.html">FAQ</a></p>

            <h2>Tutorials</h2>

            <p><img src="tutorial.png"><a title="Visual Library Tutorial for NetBeans Platform Applications" href="https://platform.netbeans.org/tutorials/nbm-visual_library.html">Visual Library Tutorial for NetBeans Platform Applications</a></p>
            <p><img src="tutorial.png"><a title="Visual Library Tutorial for JavaFX Applications" href="http://netbeans.dzone.com/articles/how-embed-javafx-chart-visual">Visual Library Tutorial for JavaFX Applications</a></p>
            <p><img src="tutorial.png"><a title="Visual Library Tutorial for Java Swing Applications" href="https://platform.netbeans.org/tutorials/nbm-quick-start-visual.html">Visual Library Tutorial for Java Swing Applications</a></p>
            <p><img src="tutorial.png"><a title="Visual Library Tutorial for Java Applets" href="https://blogs.oracle.com/geertjan/entry/applet_of_the_week">Visual Library Tutorial for Java Applets</a></p>
            <p><img src="tutorial.png"><a title="More related NetBeans API tutorials..." href="https://netbeans.org/kb/trails/platform.html">More related tutorials...</a></p>

        </body>

    </html>
