Release Notes
  In this topic
 

Release Notes   Release Notes
 
Microsoft Application Foundation Classes for Java
  Introduction

 


The Microsoft Application Foundation Classes (AFC) for Java 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. 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 exposed for the first time by the com.ms.fx graphics and effects classes. Developers can, through the com.ms.util.cab APIs, utilize the Microsoft .cab file 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 that support Java. The AFC UI controls are defaulted to the Microsoft® Windows® UI, and are also are fully customizable to reflect the needs of application and applet designers. AFC supports 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 where appropriate platform services exist.

  • 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.

Known Issues for AFC

  • Platforms and JDK 1.02 compatibility: AFC's UI and Fx classes are JDK 1.02 compatible and run with the Microsoft VM, which ships with Internet Explorer and the Microsoft SDK for Java.  

In addition, the SDK for Java contains a redistributable, JDK 1.0.2-compatible version of AFC that 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.1 and other popular non-JDK 1.1-compliant platforms.

Full JDK 1.0.2-compatible AFC licensing and redistribution details are included in the End-User License Agreement for the Microsoft SDK for Java version 3.0 pre-release 2. JDK 1.0.2-compatible AFC Release Notes are included with this SDK, and differences between the JDK 1.02 and 1.1-compatible versions of AFC that affect developers are described in the accompanying documentation. In addition, watch www.microsoft.com/java/afc for the latest updates and documents.

  • JDK 1.0.2-compatible AFC platforms: JDK 1.0.2-compatible AFC will function effectively on Internet Explorer Version 3.0 and 4.01 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.

    Severe painting and performance problems are exhibited when running JDK 1.0.2-compatible AFC on both Internet Explorer 3.0 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 will be available with Internet Explorer 4.0 when it is released for Apple Macintosh and Solaris platforms.

    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.

    See the JDK 1.0.2-compatible AFC Release Notes for more details.

  • JDK 1.1 and 1.0.2 event models: AFC supports both the JDK 1.1 and JDK 1.0.2 event models. Consult the AFC API documentation and articles on www.microsoft.com/java/sdk/30p1/afc/default.htm for implementation details.

  • 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.

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 www.microsoft.com/java/sdk/30p1/afc/default.htm give further implementation details.
  • JDK 1.0.2-compatible AFC API Changes: A list of API changes between JDK 1.1-compatible and JDK 1.0.2-compatible AFC will be provided on www.microsoft.com/java/afc/10211diffs.htm.

  • Drag and Drop: Drag and drop does not currently function correctly in AFC. The AFC samples demonstrate a drag and drop workaround which takes advantage of the AFC/AWT bridge in the Viewers Sample Applet sample. Source code for the workaround is provided as part of the sample.

  • Hot tracking has been disabled for this release.

  • FxStyledPen has a supported width of one pixel for this release.

  • UIEdit: Multiple font support and vertical writing are not available in this release. FxFormattedText provides multiple font and vertical writing support, but this functionality is not directly available as part of our UIEdit control.

  • Serialization: AFC's UI package is not serialized by default for this release. It is possible to add this functionality yourself if you require your components to be serialized.

  • Border Layout: In this release of AFC, 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.

  • Layout Managers: Some method names in AFC's UILayoutManager class have changed.

From
To
public Dimension minimumLayoutSize(IUIContainer parent) public Dimension getMinimumSize(IUIContainer parent)
public Dimension preferredLayoutSize(IUIContainer parent) public Dimension getPreferredSize(IUIContainer parent)
public void layoutContainer(IUIContainer parent) public void layout(IUIContainer parent, Rectangle rect)

 



Top © 1998 Microsoft Corporation. All rights reserved. Terms of use.