<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #247 - Jul 03, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-07-03">

<link rel="stylesheet" type="text/css" href="/netbeans.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">

<!-- ====================================================== -->
<!-- Please do not edit this file by hand, it is rebuilt    -->
<!-- automatically and your changes will be lost.  Contact  -->
<!-- webmaster for details.  Rebuilt at                     -->
<!-- #TIMESTAMP# 03-Jul 13:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #247 - Jul 03, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #247 - Jul 03, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-07-03.html'>https://netbeans.org/community/news/newsletter/2006-07-03.html</a>&gt;<br>
Interested in becoming a newsletter editor?  We're always looking<br>
for editors to help out. Contact <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
<hr><pre>Deploying Web Applications to Sun Java System Web Server 7.0 With
NetBeans 5.0
Great news for Web developers! You can install an open-source Web
Server plug-in into the NetBeans 5.0 IDE from its Auto Update Center.
That means you can develop, deploy, and debug J2EE 1.4 platform-based
Web applications directly from the IDE. This article shows you how,
complete with screen shots.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=602">http://services.netbeans.org/newsletter/story.php?id=602</a>&gt;
More links:
sun.com Web Server product page -
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=603">http://services.netbeans.org/newsletter/story.php?id=603</a>&gt;
SDN Web Server hub -
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=604">http://services.netbeans.org/newsletter/story.php?id=604</a>&gt;
NetBeans Web Server page -
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=605">http://services.netbeans.org/newsletter/story.php?id=605</a>&gt;

Adding Functionality to Buttons: A Beginners Guide
Adding Functionality to Buttons with the NetBeans GUI Builder Matisse:
This tutorial is geared to the beginner and introduces the basic
construction of a GUI with functionality. We will work through the
layout and design of a GUI and add a few Buttons and Text Boxes. The
Text Boxes will be used for receiving user input and also for
displaying the program output.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=606">http://services.netbeans.org/newsletter/story.php?id=606</a>&gt;

Useful Keyboard Shortcuts
Roumen blogged about useful shortcuts he often uses while coding. His
post was commented by quite a few people from the community who added
their own favorite shortcuts. By reading this post you may learn a
couple of new useful shortcuts which can save your time while coding:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=607">http://services.netbeans.org/newsletter/story.php?id=607</a>&gt;

NetBeans C/C++ Pack 5.5 EA Available Now!
With this pack, C/C++ developers can use the NetBeans IDE in
conjunction with their set of compilers and tools to build native
applications for supported platforms, including MS Windows, Linux, and
Solaris OS. Features include a sophisticated language-aware editor,
project templates, dynamic class browser, and makefile support.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=608">http://services.netbeans.org/newsletter/story.php?id=608</a>&gt;

Integrating and Using JasperReports in NetBeans
The article describes how to integrate the JasperReports library,
including the compilation, code-complete, and documentation
capabilities, into NetBeans 5.5. You also learn how to produce an
actual report from a Hello Report World! example and to enhance the
report template. Doesn't it seem that the sky is the limit in the open-
source world? This is a great article by Craig Conover and Marina Sum.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=610">http://services.netbeans.org/newsletter/story.php?id=610</a>&gt;

Asynchronous JAX-WS Web Service Client End-to-End Scenario
Want to work with JAX-WS (Java EE 5) web services? Want to create a
Swing application that consumes a JAX-WS web service asynchronously?
Want to be able to extend it really quickly afterwards? Or do you want
all three? If so, read this tutorial, packed full of new info for you!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=611">http://services.netbeans.org/newsletter/story.php?id=611</a>&gt;

Using Java Persistence in a J2EE 1.4 Web Application
This document takes you through the basics of how to add Java
Persistence functionality to a J2EE 1.4 web application. Though the
Java Persistence API was introduced as part of the Java EE 5 platform,
it is possible to use Java Persistence in a J2EE 1.4 application. The
target container needs to be running on JDK 1.5, but it does not need
to be a Java EE 5 container. This means that we can use the Tomcat web
server bundled with the IDE. We add support for Java Persistence
functionality by adding the TopLink Essentials library to the classpath
of the project or the container. The TopLink Essentials library is
bundled with NetBeans IDE 5.5.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=612">http://services.netbeans.org/newsletter/story.php?id=612</a>&gt;

AVK Plug-in for NetBeans 5.5 Now Available (Beta Version)
A newer version of the "Sun Java System Application Verification Kit"
plug-in with rich user interface is now available at NetBeans
Development Update Center. This plug-in helps application developers to
test their applications for correct use of Java EE APIs and portability
across Java EE compatible application servers. The tool determines that
an application suite follows the Java EE platform specification
(including all the specifications for the technologies that are part of
the platform) and that it runs on the Application Server.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=609">http://services.netbeans.org/newsletter/story.php?id=609</a>&gt;

Meet a NetBeans Module Writer: Chuk Munn Lee
Chuk recently wrote a module that integrates Star Office into NetBeans
IDE. Read how Dilbert's pointy haired boss inspired him and what he has
learend from Robin Williams in "Dead Poets Society". In addition, he
tells us about an interesting Chinese saying...
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=613">http://services.netbeans.org/newsletter/story.php?id=613</a>&gt; </pre><hr>This issue of NetBeans Weekly News was brought to you by Robert Demmer.<br>
The next editor will be Robert Demmer. (New volunteers are welcome!)<br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a></BODY>
</HTML>