<H2><B>Directed Projects</B></H2>
9/17/99 Version

Java Projects

www.cs.ucla.edu/~klinger/java.html
Three people resources could support activities here: D. Chandler, A. Klinger, B. Darrah. This page covers material from the first in some detail. It also links to an introduction to initial thoughts of the second person.
Project Proposals from David Chandler
email: David@davidchandler.com, <37CFF93F.BEB9EB65@DavidChandler.com> http://www.DavidChandler.com Voice: 559-539-0900 Fax: 559-539-7033
Introduction

My wife and I run a small company producing astronomy-related products, including software (see our web page).

The software (written in Pascal, operates under DOS) needs to be ported to a Windows environment: Java is what has been chosen. (I've begun studying Java and expect to use Borland J-Builder; I'm a self-taught part-time programmer.)

I've been working on Java with just the documentation and a stack of how-to books: small roadblocks become major obstacles. The immaturity of the language (language and development environments change faster than I can learn them) is a problem. I started with Symantec's Café, but abandoned it when I found that it had difficulty parsing manual coding back to a visual environment. J-Builder is also somewhat buggy, but seems to be much better. I have just started getting into J-Builder 3, which uses the Java 2 components. Some of my books rely on the AWT, whereas others warn that the AWT should be avoided altogether. Some seemingly simple tasks don't work as advertised (for instance I have had endless trouble simply implementing a ScrollPane). I have just upgraded to J-Builder 3 (which uses the Java 2 JFC/Swing components).

To speed my learning curve I could use (and so could others) well-documented working examples of the basic structures and processes: especially those needed in my projects. Some would be very routine, others would require research into the more advanced features of Java. I'm interested mostly in Java Applications, but may write versions of some of the features as Applets too.

Specific Features Needed

--Construct a graphic display (using line drawing, shading, and text) on screen, and print the result to the resolution of the printer. The printout should be able to show the whole screen panel or a selected region. The scale of the printout should be controllable. The printing features of the earlier Java implementations seem very crude. Presumably the current 2D features allow better printing. A demo putting this through its paces would be helpful.

--On the graphic display I would like to be able to place moveable labels, with controllable font size. The image on-screen should give an exact indication of the size and location of the label on the printout. If it is possible to rotate graphical text (on screen and in the printout) implement this as well.

--Create animations in the 2D and 3D models using threads appropriately. (Think solar system. Perhaps you could let one ball orbit another.) Control the horizontal and vertical angles of the viewpoint and the zoom factor in the 3D model with appropriate widgits.

--Import video footage and display it in a small box. Alongside it display a synchronized animation. The animation would be used to interpret the video. Your samples need not be meaningfully related, but they should display synchronization. Perhaps you could take video footage of someone counting and the animation could show marks being drawn, keeping in step with the video. Both should be controllable with pause, fast forward, rewind, etc.

--Implement buffered serial port communication (send and receive) with some kind of device. (I can loan you a telescope interface box. It waits for an ASCII code, then sends a fixed-length stream of bytes. Other devices send variable length strings and require the program to look for a termination character.)

--From within a program, access a dialer and initiate an internet connection, if necessary, then download a text file from a specified web site. Invoke the default html browser (user's choice of Navigator, Explorer, etc.) to read and write text materials, such as help files, observing logs, etc.

David Chandler
P.O. Box 999
Springville, CA 93265

http://www.DavidChandler.com
Voice: 559-539-0900 Fax: 559-539-7033
Introduction to Lean Java Project by Allen Klinger