<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>GUI Form Examples</title>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
        <link rel="stylesheet" type="text/css" href="netbeans.css" media="screen">

</head>
<body>
<br>
<h1 align="">GUI Form Example Descriptions</h1>
<p>

This project contains three visual forms that were designed with the IDE's
GUI Builder. </p>
<p><strong>To open an example form in the GUI Builder:</strong></p>
<ol>
  <li>In the IDE's Projects window, navigate to the default package node within the <br>
    Source Packages directory.</li>
  <br>
  <li>Double-click the node of the sample form you want to view.
    <p>The IDE launches the GUI Builder and displays the chosen form.
  </li>
</ol>

<br>

<h2>Contact Editor</h2>
<p>This complex form is similar to Windows dialogs typically used to display and
edit database information. The example illustrates the full range of GUI Builder
features, including alignment, anchoring, sizing, indentation, and runtime
auto-resizing behavior. To view a detailed tutorial including flash demonstrations
showing how to build this form, see
<a href="http://netbeans.org/kb/60/java/quickstart-gui.html">Designing a Swing GUI in NetBeans IDE</a>.</p>

<br>

<h2>Antenna Preferences</h2>
<p>This example illustrates a type of table-based form commonly used to display
related information in visually coherent groups. The GUI Builder's advanced
alignment features enable you to group and size non-adjacent components
(such as labels, textfields, and buttons) consistently without the need to merge cells manually.
</p>

<br>

<h2>Find</h2>
<p>This simple form illustrates a straight-forward layout often used in various
applications requiring basic search functionality. The GUI Builder's alignment
and sizing features enable you to quickly construct such forms while ensuring
that they localize predictably.
</p>

</body>
</html>
