|
Microsoft's
Application Foundation Classes (AFC) are a comprehensive set of Java class libraries
providing user interface controls, graphics and effects classes and the ability to create
and extract cabinet (CAB) files. The release of AFC's JDK 1.0.2-compatible redistributable
component will give developers a means to create and distribute AFC applets for a variety
of popular JDK 1.0.2-compatible platforms.
AFC's UI controls give Java developers a rich set
of UI elements from which they can quickly build flexible, modern and powerful user
interfaces for their applications, enhanced by the innovative graphics techniques by the
Fx graphics and effects classes. Developers can, through the Java CAB APIs, utilize
Microsoft's CAB packaging and compression technology on any virtual machine.
Written in Java, AFC ensures that applications
built using these classes run on the most popular platforms supporting Java, insofar as it
has been possible to achieve full compatibility. The AFC UI controls are defaulted to the
Windows UI, and are also are fully customizable to reflect the needs of application and
applet designers. AFC supports Microsoft's Active Accessibility for Java, so any
application developed using AFC is automatically accessibility-enabled where Active
Accessibility for Java services exist. AFC comprises:
- UI: A rich suite of UI controls, written in Java. UI
controls will run in a number of popular browsers and are automatically
accessibility-enabled.
- Fx: A suite of classes for graphics and effects,
written in Java. Fx classes will run in a number of popular browsers.
- CAB: A suite of Java APIs for creating and
extracting cabinet files on any virtual machine.
- Platforms and JDK 1.1 and 1.02
compatibility: The version of AFC's UI and Fx classes that shipped with
Microsoft's SDK for Java Version 2.0 and Internet Explorer 4.0 is fully JDK
1.1-compatible.
The redistributable version
of AFC provided here is fully JDK 1.0.2-compatible, and has been tested on popular JDK
1.0.2-compatible browsers on Win32 and other platforms. This redistributable component
should be used for applets requiring distribution on Internet Explorer 3.0.2 and other
popular non-JDK 1.1-compliant platforms.
A license agreement provided with
JDK 1.0.2-compatible AFC gives full licensing and redistribution details, and
differences between the JDK 1.0.2 and 1.1-compatible versions of AFC affecting developers
are described in accompanying documentation. Watch http://www.microsoft.com/java/afc
for the latest information.
- Platforms: JDK 1.0.2-compatible AFC
will function effectively on Internet Explorer Version 3.0.2 and 4.0 and on Netscape
Navigator 3.0.4 and 4.0.3 on Windows 95 and Windows NT 4.0.
JDK 1.0.2-compatible AFC will also function on Navigator 3.0.4 and
4.0.3 on Solaris platforms.
JDK 1.1-compatible AFC will also
function on Navigator 4.0.3 with JDK1.1 patch on Solaris platforms.
Severe painting and performance problems are
exhibited when running JDK 1.0.2-compatible AFC on both Internet Explorer 3.0.2 and
Netscape Navigator 3.0.4 and 4.0.3 for the Apple Macintosh as a result of difficulties
intrinsic to the Macintosh VM. Microsoft is therefore not licensing JDK 1.0.2-compatible
AFC for use on the Apple Macintosh at this time.
The JDK 1.1-compatible version of AFC is
available with Internet Explorer 4.0 for Windows 95, Windows NT 4.0, MacOS 7.1 or greater
and Solaris platforms 2.5, 2.5.1 and 2.6.
Please note: Developers may notice
variations in the quality of the JDK 1.0.2-compatible AFC implementation when running
across VMs and browsers, resulting from compatibility issues and differences in VM
implementations
- JDK 1.1 and 1.0.2 event models: You
can use the JDK 1.1 event model in JDK 1.0.2-compatible AFC, provided you remain within
AFC. Please note, however, that only events available under JDK 1.0.2 can be used.
- Textures: It is not possible to do
setColor(FxColor obj) on a UIComponent in JDK 1.0.2-compatible AFC. The workaround is to
override update() and then call paint().
- Threading: JDK 1.0.2-compatible AFC
classes have no inherent thread synchronization. Therefore, as with AWT 1.0.2, callers
must be careful with threading.
- AWT/UI interoperability: In this release,
bi-directional interoperability between UI and AWT is provided, enabling AWT components to
be used in AFC containers and vice versa.
Please
note: As AwtUI and UIAwt objects are intended only to provide a bridge between AWT and
AFC, use of AwtUI and UIAwt should be confined to situations where a bridge is necessary
and beyond this should be limited to prevent performance degradation and to permit the
full benefits of AFC to be realized. AFC's API documentation and articles on http://www.microsoft.com/java/sdk/20/afc/default.htm
give further implementation details.
- Drag and Drop: Drag and drop does
not function in JDK 1.0.2-compatible AFC. This functionality is restricted to JDK
1.1-compatible AFC.
- FxStyledPen has a supported
width of one pixel.
- UIEdit: Multiple font support
and vertical writing are not available. FxFormattedText provides multiple font and
vertical writing support, but this functionality is not directly available as part of our
UIEdit control.
- UIChoice: When using JDK 1.0.2-compatible
AFC, top level windows can sometimes obscure any part of a pop-up menu that appears over
them.
- Border Layout: Overridding getPreferredSize()
in a Panel will not cause the panel to have that perferred size. The layout manager may
shrink the panel to a smaller size.
|