AFC  

AFC
Application Foundation Classes (JDK 1.0.2-compatible AFC)
  Java Home
Java Home

 


Microsoft's Application Foundation Classes (AFC) are a comprehensive set of Java class libraries that provide 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 gives 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 exposed for the first time by the com.ms.fx graphics and effects classes. Developers can, through the com.ms.util.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 that support Java, insofar as it has been possible to achieve full compatibility. 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 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.

Known Issues for JDK 1.0.2-compatible AFC

  • Platforms and JDK 1.1 and 1.02 compatibility: The version of AFC's UI and Fx classes that ship with the Microsoft SDK for Java and Internet Explorer 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.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.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 will be available with Internet Explorer 4.0 when Internet Explorer 4.0 is released for Apple Macintosh and Solaris platforms.

    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

  • Installation:
    Note: AFCSetup will automatically install JDK 1.0.2-compatible AFC on whichever browser is set as the default on your client machine. Please make sure you have set the browser in which you wish to run JDK 1.0.2-compatible AFC as default before proceeding with the installation.

    To install JDK 1.0.2-compatible AFC for Navigator 3.0.4 or 4.0.3 on Solaris:

    1. Copy AFC102.ZIP to an appropriate location on your computer (such as $HOME/classes). If you are unsure where this directory is, use the following to locate it:


    2. public static void main(String args [])
      {
      System.out.println( "java.home = " + System.getProperty( "java.home" ) );
      }

    3. Next, add this location to your CLASSPATH - for example: set CLASSPATH = $HOME/classes/afc102.zip:$CLASSPATH.

    AFC Detect: AFC Detect is a useful program that allows you to determine whether or not JDK 1.0.2-compatible AFC is installed on your client machine, and which will then install it in the correct location if it is not already present. AFC Detect is provided as a JDK 1.0.2-compatible AFC sample.

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

  • JDK Scrolling: This release may exhibit some scrolling problems when a scrollviewer is overlaid by a top level window.

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

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

  • UIResourceObject: UIResourceObject is very large (332K) in this release.

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

    •  



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