The Internet Foundation Classes (IFC) were a graphics library for Java originally developed by Netcode Corporation and first released by Netscape Corporation on December 16, 1996.
Contents |
History
On April 2, 1997, Sun Microsystems and Netscape announced their intention to combine IFC with other technologies to form the Java Foundation Classes[1].
Ultimately, Sun merged the IFC with other technologies under the name "Swing", adding the capability for a pluggable look and feel of the widgets.
Because its technology has been merged to constitute Swing and Java 2D, IFC is now no longer maintained.
Differences with Swing
Swing draw a lot of features from IFC:
- contrary to AWT, IFC were written in pure Java, thus being (at the time) browser-independent.
- IFC already provided two Layout managers, that would be later included in the standard JDK
- some IFC components were able to read HTML content from URLs, but the implementation was still far from reliable.
However, Swing also improved IFC in a lot of ways:
- IFC did not have a Model-View architecture
- contrary to Swing, the Look and feel of IFC components was written in the components themselves, making it impossible to change it easily.
- IFC components were not JavaBeans. IFC had a specific persistence mechanism[2], but it was a bit complex, and not compatible with the Java Serialization API.
- event mechanism was still raw[3], and the Event loop sometimes needed to be accessed directly.
Examples
Hello World
This is the classic Hello world program in IFC:
import netscape.application.*; import netscape.util.*; public class HelloWorld extends Application { public void init() { super.init(); // Create a text field TextField textField = new TextField(100, 24, 128, 24); // Set the string to be displayed in the text field. textField.setStringValue("Hello World"); // Add the text field to the view hierarchy. mainRootView().addSubview(textField); } // This method allows HelloWorld to run as a stand alone application. public static void main(String args[]) { HelloWorld = new HelloWorld (); ExternalWindow mainWindow = new ExternalWindow(); Size size; app.setMainRootView(mainWindow.rootView()); size = mainWindow.windowSizeForContentSize(320, 200); mainWindow.sizeTo(size.width, size.height); mainWindow.show(); app.run(); } }
To be compared with the equivalent Java Swing code:
import javax.swing.*; public class HelloWorld extends JFrame { public HelloWorld() { super(); this.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE); Container pane = this.getContentPane(); pane.add(new JLabel("Hello, World!")); } public static void main(String[] args) { HelloWorld app = new HelloWorld(); app.pack(); app.setVisible(true); } }
References
- ^ "Sun and Netscape to jointly develop Java Foundation Classes". Netscape Communications Corporation (1997-04-02). Retrieved on 2007-07-14.
- ^ "IFC 1.1 guide - Persistence" (2000-06-15). Retrieved on 2007-07-15.
- ^ "IFC 1.1 guide - Targets and commands" (2000-06-15). Retrieved on 2007-07-15.
External links
The last places, where to download the IFC:
- ftp-Server 1 Uni-Potsdam
- ftp-Server 2 Uni-Potsdam
- ftp-Server 3 Uni-Potsdam
- ftp-Server Uni-Bochum
- ftp-Server SunSite
All find from
No comments have been added.





