Java Applets in Physics
(Table of the Nuclides)
Rossen Angelouv Radev
GSI Student Program
11.08.-2.10.1997
Tutor: Peter Malzacher
1. Introduction
Java is a new programming language for networking computers which was developed
between 1990 and 1995. In this language programs can be written which are
available via Internet, can be downloaded and executed on the users machine.
To perform this the program code must run machine-independently since there
are a lot of types of computers involved in the Internet. Java is: A simple,
object-oriented, distributed, interpreted, robust, secure, architecture
neutral, portable, high-performance, multithreaded, and dynamic language.
There are two kinds of Java-programs: applets and applications.
Applets are programs which run embedded in a WWW-side.
To run them one needs a Java-capable Web-browser.
Applications are independent -stand alone- runnable programs
just as programs written in other computer languages. To run them a byte-code
interpreter (java) is needed.
Java is an interpreted language, so it is never going to be as fast as
a compiled language. (E.g. Java is about 20 times slower as C.) Therefore
it is unsuitable to be used for scientific computation. But this speed
is quite adequate to run interactive, Graphical User Interface (GUI) and
network-based applications, where the application is often idle, waiting
for the user to do something, or waiting for date from the network.
My work at Student Program was to learn the syntax of Java and
try to make a interactive Applet -"Table of the Nuclides". To performe
this, I used the examples found in the Java Tutorial of Sun [3b]
and in the books [1a], [2a], [1b],
[2b] and [4b].
There are lot of examples available on the Internet [1c],
[3c], [4c],
[5c].
2. Steps to a Java Applet
By writing an applet the Java source code is to create at first.
It is a simple text file with the extension ".java".
From the source code the Java compiler creates the Java byte code
with the extension ".class" which can be run by the interpreter.
The third step is to create an HTML-source code with the "<APPLET>"-
tag, with the extension ".html":
<APPLET CODE="PaintTable.class" WIDTH=1000 HEIGHT=600>
<PARAM NAME="database" VALUE="http://www.gsi.de/~dvalpha/catalog.log">
</APPLET>
3. Applet "PaintTable"
During my Java-studies I develop an applet modeling the interactive
"Table of the Nuclides" [2c].
To paint the Nuclides I use the data file extracted from "Evaluated
Nuclear Structure Data File" [3a], [4a].
To performe this I create Unix Shell scripts, that extract information
from different data files and make one big file (catalog.log) containing
all necessary data.
Applet PaintTable read data from catalog.log file, calculate the position,
and paint nuclides on the screen.
There a three functions available:
a) Zoom In: Table is "click able", and if user click
in the table, applet show more information from selected region.
b) Zoom Up: This is reverse of the Zoom In function.
c) Reset: This function reset Table to start position.
Applet paint nuclide name, atomic number A, and color (not available
yet).
When mouse is positioned to table, applet show in the bottom status
line of Netscape screen the number of neutrons N, protons Z, and the atomic
number A of current nuclide [fig. 1].
4. PaintTable.java - Program Structure
| Class |
Status |
Description |
| Element |
public |
A helper class. Define data for one Nuclide. |
| PaintTable |
public |
Main
class. Define Data Types and Paint Methods.
| Method |
Description |
| init() |
Initialize the table, open Input Stream, read data from file. |
| paint() |
Paint all table elements and labels. |
| update() |
Update image. |
| mouseUp(), mouseDoun(), mouseMove(), action() |
Mouse action events. |
| paintElement(), paintLabel() |
Paint nuclide and table label. |
|
5. Summary
The development of the PaintTable Applet and Shell scripts has been finished,
bat in future development it is possible to create applet, that make Graphical
User Interface (GUI) to all data contained in "Evaluated Nuclear Structure
Data File".
Now Apllet PaintTable is available in my page in GSI-Web Server :
http://www.gsi.de/~dvalpha/table.html
References
[1a] David
Flanagan, Java in a Nutshell, O'Reilly & Associates Inc.
(1996).
[2a] Timothy
Budd, An introduction to Object-Oriented Programing,
Addison Wesley Inc (1997) .
[3a] Richard
B. Firestone, Table of Isotopes, Wiley Interscience (1996).
[4a] J.K.Tuli,
Evaluated Nuclear Structure Data File, National Nuclear Data Center
(1987).
Internet References
Online Books:
[1b] Special
Edition Using Java, 2nd Edition - Online Version,
Macmillan Publishing USA (1997).
http://www.mcp.com/que/et/se_java2e
[2b] David
Flanagan, Java in a Nutshell,1st Edition - Online Version,
O'Reilly & Associates Publishing (1996).
http://www.ora.com/catalog/javanut
[3b] Mary
Campione, Kathy Walrath, The Java Tutorial - Object Oriented
programming for the Internet,
Online Version (1997)
http://java.sun.com:81/docs/books/tutorial/index.html
[4b] Java
Development Kit 1.1.4 Documentation, Sun Microsystems (1997) .
http://www.javasoft.com/products/jdk/1.1/docs/index.html
Applets:
[1c] Table
of the Nuclides.
http://sutekh.nd.rl.ac.uk/CoN
[2c] Rossen
Radev, Chart of the Nuclides.
http://www.gsi.de/~dvalpha/table.html
[3c] TIPTOP:
Online Physics Java Applets and VRML Resources .
http://www.tp.umu.se/TIPTOP/VLAB
[4c] Jochen
Frohlich, Neural networks with Java (1997).
http://rfhs8012.fh-regensburg.de/~sauer/jfroehl/diplom/e-index.html
[5c] Top
1% Java Resources.
http://www.jars.com