<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Internet_Foundation_Classes</id>
	<title>Internet Foundation Classes - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Internet_Foundation_Classes"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Internet_Foundation_Classes&amp;action=history"/>
	<updated>2026-10-26T18:30:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Internet_Foundation_Classes&amp;diff=5036191&amp;oldid=prev</id>
		<title>imported&gt;GreenC bot: Reformat 5 archive links. Wayback Medic 2.5 per WP:URLREQ#citeftp</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Internet_Foundation_Classes&amp;diff=5036191&amp;oldid=prev"/>
		<updated>2025-05-27T10:59:07Z</updated>

		<summary type="html">&lt;p&gt;Reformat 5 archive links. &lt;a href=&quot;/wiki143/index.php?title=User:GreenC/WaybackMedic_2.5&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:GreenC/WaybackMedic 2.5 (page does not exist)&quot;&gt;Wayback Medic 2.5&lt;/a&gt; per &lt;a href=&quot;/wiki143/index.php?title=WP:URLREQ&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:URLREQ (page does not exist)&quot;&gt;WP:URLREQ#citeftp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Internet Foundation Classes&amp;#039;&amp;#039;&amp;#039; (IFC) is a [[GUI]] [[widget toolkit]] and [[graphics library]] for Java originally developed by [[Netcode Corporation]] and first released by [[Netscape Corporation]] on December 16, 1996.&lt;br /&gt;
&lt;br /&gt;
The Java IFC was fairly close to the early versions of the [[Objective-C]] [[NeXTStep]] classes for NeXT. A builder tool was also included under the IFC umbrella that was close in spirit (but significantly limited in functionality) to NeXT&amp;#039;s [[Interface Builder]]. This ecosystem was attractive to NeXT application developers interested in looking at the Java language.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
On April 2, 1997, [[Sun Microsystems]] and [[Netscape Communications Corporation|Netscape]] announced their intention to combine IFC with other technologies to form the [[Java Foundation Classes]].&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
 |url=http://www2.prnewswire.com/cgi-bin/stories.pl?ACCT=104&amp;amp;STORY=/www/story/84048&amp;amp;EDATE= &lt;br /&gt;
 |title=Sun and Netscape to jointly develop Java Foundation Classes &lt;br /&gt;
 |publisher=[[Netscape Communications Corporation]] &lt;br /&gt;
 |date=1997-04-02 &lt;br /&gt;
 |accessdate=2007-07-14 &lt;br /&gt;
 |url-status=dead &lt;br /&gt;
 |archiveurl=https://web.archive.org/web/20120509230952/http://www2.prnewswire.com/cgi-bin/stories.pl?ACCT=104&amp;amp;STORY=%2Fwww%2Fstory%2F84048&amp;amp;EDATE= &lt;br /&gt;
 |archivedate=2012-05-09 &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ultimately, Sun merged the IFC with other technologies under the name &amp;quot;Swing&amp;quot;, adding the capability for a pluggable [[look and feel]] of the widgets.&lt;br /&gt;
&lt;br /&gt;
Because its technology has been merged to constitute [[Swing (Java)|Swing]] and [[Java 2D]], IFC is now no longer maintained.&lt;br /&gt;
&lt;br /&gt;
==Differences from Swing==&lt;br /&gt;
[[Swing (Java)|Swing]] drew a lot of features from IFC:&lt;br /&gt;
* contrary to [[Abstract Window Toolkit|AWT]], IFC were written in pure [[Java (programming language)|Java]], thus being (at the time) browser-independent.&lt;br /&gt;
* IFC already provided two [[Layout manager]]s, that would be later included in the standard [[JDK]]&lt;br /&gt;
* some IFC components were able to read [[HTML]] content from [[Uniform Resource Locator|URL]]s, but the implementation was still far from reliable.&lt;br /&gt;
&lt;br /&gt;
However, Swing also improved IFC in a lot of ways:&lt;br /&gt;
* IFC did not have a [[Model-view-controller|Model-View]] architecture&lt;br /&gt;
* contrary to Swing, the [[Look and feel]] of IFC components was written in the components themselves, making it impossible to change it easily.&lt;br /&gt;
* IFC components were not [[JavaBean]]s. IFC had a specific persistence mechanism,&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://infodoc.unicaen.fr/docs/Java/guide.IFC1.1/persist.mak.html#1004819&lt;br /&gt;
| title=IFC 1.1 guide - Persistence&lt;br /&gt;
| date=2000-06-15&lt;br /&gt;
| accessdate=2007-07-15&lt;br /&gt;
| archive-date=2006-11-25&lt;br /&gt;
| archive-url=https://web.archive.org/web/20061125135539/http://infodoc.unicaen.fr/docs/Java/guide.IFC1.1/persist.mak.html#1004819&lt;br /&gt;
| url-status=dead&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; but it was a bit complex, and not compatible with the Java [[Serialization]] API.&lt;br /&gt;
* event mechanism was still raw,&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
| url=http://infodoc.unicaen.fr/docs/Java/guide.IFC1.1/targets.mak.html#100582&lt;br /&gt;
| title=IFC 1.1 guide - Targets and commands&lt;br /&gt;
| date=2000-06-15&lt;br /&gt;
| accessdate=2007-07-15&lt;br /&gt;
| archive-date=2006-11-25&lt;br /&gt;
| archive-url=https://web.archive.org/web/20061125140237/http://infodoc.unicaen.fr/docs/Java/guide.IFC1.1/targets.mak.html#100582&lt;br /&gt;
| url-status=dead&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; and the [[Event loop]] sometimes needed to be accessed directly.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
===Hello World===&lt;br /&gt;
This is the classic &amp;#039;&amp;#039;[[Hello world program]]&amp;#039;&amp;#039; in IFC:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import netscape.application.*;&lt;br /&gt;
import netscape.util.*;&lt;br /&gt;
&lt;br /&gt;
public class HelloWorld extends Application {&lt;br /&gt;
&lt;br /&gt;
   public void init() {&lt;br /&gt;
       super.init();&lt;br /&gt;
       // Create a text field&lt;br /&gt;
       TextField textField = new TextField(100, 24, 128, 24);&lt;br /&gt;
       // Set the string to be displayed in the text field.&lt;br /&gt;
       textField.setStringValue(&amp;quot;Hello World&amp;quot;);&lt;br /&gt;
       // Add the text field to the view hierarchy.&lt;br /&gt;
       mainRootView().addSubview(textField);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
    // This method allows HelloWorld to run as a stand alone application.&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        HelloWorld app = new HelloWorld ();&lt;br /&gt;
        ExternalWindow mainWindow = new ExternalWindow();&lt;br /&gt;
&lt;br /&gt;
        app.setMainRootView(mainWindow.rootView());&lt;br /&gt;
        Size size = mainWindow.windowSizeForContentSize(320, 200);&lt;br /&gt;
        mainWindow.sizeTo(size.width, size.height);&lt;br /&gt;
        mainWindow.show();&lt;br /&gt;
&lt;br /&gt;
        app.run();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be compared with the equivalent [[Swing (Java)|Java Swing]] code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.*;&lt;br /&gt;
&lt;br /&gt;
public class HelloWorld extends JFrame {&lt;br /&gt;
    public HelloWorld() {&lt;br /&gt;
       setDefaultCloseOperation(DISPOSE_ON_CLOSE);&lt;br /&gt;
       add(new JLabel(&amp;quot;Hello, World!&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        HelloWorld app = new HelloWorld();&lt;br /&gt;
        app.pack();&lt;br /&gt;
        app.setVisible(true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.phdcc.com/javaart2.html IFC presentation]&lt;br /&gt;
*[http://wp.netscape.com/eng/ifc/download.html IFC runtime download] {{Webarchive|url=https://web.archive.org/web/20060519194800/http://wp.netscape.com/eng/ifc/download.html |date=2006-05-19 }}&lt;br /&gt;
*[http://infodoc.unicaen.fr/docs/Java/guide.IFC1.1/ IFC programming guide] {{Webarchive|url=https://web.archive.org/web/20061125115942/http://infodoc.unicaen.fr/docs/Java/guide.IFC1.1/ |date=2006-11-25 }}&lt;br /&gt;
*[http://infodoc.unicaen.fr/docs/Java/Reference.IFC1.1/tree.html IFC class hierarchy] {{Webarchive|url=https://web.archive.org/web/20061125150802/http://infodoc.unicaen.fr/docs/Java/Reference.IFC1.1/tree.html |date=2006-11-25 }}&lt;br /&gt;
*[http://infodoc.unicaen.fr/docs/Java/cookbook/ IFC tutorial] {{Webarchive|url=https://web.archive.org/web/20061125134457/http://infodoc.unicaen.fr/docs/Java/cookbook/ |date=2006-11-25 }}&lt;br /&gt;
&lt;br /&gt;
The last places, where to download the IFC:&lt;br /&gt;
*[ftp://ftp.uni-potsdam.de/pub/WWW/Netscape/navigator/plugins/ifc/1.0/ ftp-Server 1 Uni-Potsdam]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}&lt;br /&gt;
*[ftp://ftp.uni-potsdam.de/pub/WWW/clients/netscape/plugins/ifc/1.0/ ftp-Server 2 Uni-Potsdam]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}&lt;br /&gt;
*[ftp://ftp.uni-potsdam.de/pub/WWW/netscape/navigator/plugins/ifc/1.0/ ftp-Server 3 Uni-Potsdam]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}&lt;br /&gt;
*[ftp://ftp.ruhr-uni-bochum.de/.subdisc1/local/jk.collection/ ftp-Server Uni-Bochum]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}&lt;br /&gt;
*[ftp://ftp.anu.edu.au/sunsite/mnt/disk3/WWW/netscape/navigator/plugins/ifc/1.0/ ftp-Server SunSite]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}&lt;br /&gt;
All find from&lt;br /&gt;
*[https://archive.today/20121209025852/http://www.filesearching.com/cgi-bin/s?q=nsifc10 FileSearching.com]&lt;br /&gt;
&lt;br /&gt;
The web-archive where is the last place to find really &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; files:&lt;br /&gt;
*[https://web.archive.org/web/20001021124345/http://developer.netscape.com/docs/manuals/ifc/downloads/downloads.html WebArchive of the IFC-side]&lt;br /&gt;
&lt;br /&gt;
Additional you can still find IFC here:&lt;br /&gt;
*[http://web.mit.edu/javadev/packages/ifc/ Server of the MIT - Nathans account]&lt;br /&gt;
*[http://stuff.mit.edu/afs/sipb/project/java/packages/ifc/ Server of the MIT - stuff side]&lt;br /&gt;
&lt;br /&gt;
[[Category:Java (programming language)]]&lt;br /&gt;
[[Category:Java (programming language) libraries]]&lt;br /&gt;
[[Category:Java APIs]]&lt;br /&gt;
[[Category:Widget toolkits]]&lt;/div&gt;</summary>
		<author><name>imported&gt;GreenC bot</name></author>
	</entry>
</feed>