Internet Foundation Classes
From Wikipedia, the free encyclopedia
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 |
[edit] 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.
[edit] 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.
[edit] Examples
[edit] 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); } }
[edit] 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.