Rethinking The Interface And Toolset
Figure 1 may actually take you back in time a bit to the early days of AWT. Many developers have moved exclusively to Swing for Java GUI development. I expect Swing to be integrated in a future generation of PDAs, but today AWT is more appropriate. AWT earned a bad reputation because its UI is simplistic compared to other, fancier GUIs available on the desktop. Idiosyncrasies across OSs caused by using OS-native peers didn't help either. But AWT works well in the simpler, space-constrained form factor of the PDA.
|Figure 2. Saving Space: Personal Java on a PDA uses 50 percent less screen area than the desktop for the java.awt.FileDialog by using "OK" instead of "Open" on buttons.|
Because of limited PDA screen real screen estate, building GUI-based applications presents some unique challenges. Developers working in desktop environments have become accustomed to large displays. Creating applications on the PDA will almost always require a developer to change his way of thinking. The good news is the PDA is controlled with a stylus and is close to the user, so generous amounts of space are not required. Figure 2
shows how Personal Java on a PDA uses 50 percent less screen area than the desktop for the java.awt.FileDialog by using "OK" instead of "Open" on buttons.
On the other hand, an application designed to be used with fingertips instead of stylus will require much larger buttons. Figure 1 is an example of a 'finger friendly' application.
|Figure 3. Skip the Tabs: Using the java.awt.Choice component is a simple and effective alternative to using tabbed panel widgets.|
Many applications require multiple configuration parameters that ultimately won't fit on one screen. A popular widget for implementing these is tabbed panels. I have seen some tabbed panel widgets implemented in AWT, but they are not integrated into any of the popular IDEs in use today. A simple and affective alternative is to use the java.awt.Choice component as shown in Figure 3
With screen area at such a premium, providing functionality is an increased challenge. You can find unused areas of GUI objects to provide additional functionality. The application in Figure 1 for example, uses the lower right corner of the java.awt.TextArea to provide a '-' button to change the size of the application.