Internet Foundation Classes (IFC) は、もともと Netcode Corporation によって開発され、1996 年 12 月 16 日に Netscape Corporationによって初めてリリースされた、Java 用のGUI ウィジェット ツールキットおよびグラフィックス ライブラリです。
Java IFC は、NeXT 用のObjective-C NeXTStepクラスの初期バージョンにかなり近いものでした。IFC 傘下には、NeXT のInterface Builderに精神面で近い (ただし機能が大幅に制限されている) ビルダー ツールも含まれていました。このエコシステムは、Java 言語に興味を持つ NeXT アプリケーション開発者にとって魅力的でした。
歴史
1997年4月2日、サン・マイクロシステムズとネットスケープは、 IFCと他の技術を組み合わせてJava Foundation Classesを形成する意向を発表しました。[1]
最終的に、Sun は IFC を「Swing」という名前で他のテクノロジと統合し、ウィジェットのプラグ イン可能な外観と操作性を実現する機能を追加しました。
その技術はSwingとJava 2D を構成するために統合されたため、IFC は現在メンテナンスされなくなりました。
スイングとの違い
Swing はIFC から多くの機能を引き継ぎました:
- AWTとは異なり、 IFC は純粋なJavaで記述されているため、(当時は) ブラウザに依存しませんでした。
- IFCはすでに2つのレイアウトマネージャを提供しており、これらは後に標準JDKに含まれる予定である。
- 一部の IFC コンポーネントはURLからHTMLコンテンツを読み取ることができましたが、実装はまだ信頼できるものではありませんでした。
ただし、Swing は IFC をさまざまな点で改善しました。
- IFCにはモデルビューアーキテクチャがなかった
- Swing とは異なり、 IFC コンポーネントのルック アンド フィールはコンポーネント自体に記述されているため、簡単に変更することはできません。
- IFCコンポーネントはJavaBeansではありませんでした。IFCには特定の永続化メカニズムがありましたが[2]、少し複雑で、Java Serialization APIと互換性がありませんでした。
- イベントメカニズムはまだ未完成であり[3]、イベントループに直接アクセスする必要がある場合がありました。
例
こんにちは世界
これはIFC の 典型的なHello world プログラムです。
netscape.application.*をインポートします。netscape.util .*をインポートします。
パブリッククラスHelloWorldはApplicationを拡張します{
public void init () { super . init (); // テキスト フィールドを作成しますTextField textField = new TextField ( 100 , 24 , 128 , 24 ); // テキスト フィールドに表示される文字列を設定します。textField . setStringValue ( "Hello World" ); // テキスト フィールドをビュー階層に追加します。mainRootView (). addSubview ( textField ); }
// このメソッドにより、HelloWorld をスタンドアロン アプリケーションとして実行できます。public
static void main ( String args [] ) { HelloWorld app = new HelloWorld (); ExternalWindow mainWindow = new ExternalWindow ( );
app.setMainRootView ( mainWindow.rootView ( ) ) ;サイズsize = mainWindow.windowSizeForContentSize ( 320,200 ) ; mainWindow.sizeTo ( size.width , size.height ) ; mainWindow.show ( ) ;
アプリを実行します() ; } }
同等のJava Swingコードと比較するには:
javax.swing.*をインポートします。
パブリッククラスHelloWorld はJFrameを拡張します{ public HelloWorld () { setDefaultCloseOperation ( DISPOSE_ON_CLOSE ); add ( new JLabel ( "Hello, World!" )); }
パブリック静的void main ( String [] args ) { HelloWorld app = new HelloWorld ( ); app.pack ( ) ; app.setVisible ( true ) ; } }
参考文献
- ^ 「Sun と Netscape が Java Foundation Classes を共同開発」Netscape Communications Corporation 1997-04-02。2012-05-09 時点のオリジナルよりアーカイブ。2007-07-14に閲覧。
- ^ 「IFC 1.1 ガイド - 永続性」 2000 年 6 月 15 日。2006 年 11 月 25 日時点のオリジナルよりアーカイブ。2007 年7 月 15 日に取得。
- ^ 「IFC 1.1 ガイド - ターゲットとコマンド」 2000 年 6 月 15 日。2006 年 11 月 25 日時点のオリジナルよりアーカイブ。2007 年7 月 15 日に取得。
外部リンク
- IFCプレゼンテーション
- IFC ランタイムのダウンロード 2006-05-19 にWayback Machineでアーカイブされました
- IFC プログラミング ガイド 2006-11-25 にWayback Machineでアーカイブされました
- IFC クラス階層 2006-11-25 にWayback Machineでアーカイブされました
- IFC チュートリアル 2006-11-25 にWayback Machineでアーカイブされました
IFC をダウンロードできる最後の場所:
- ftp-Server 1 Uni-Potsdam [永久リンク切れ ]
- ftp-Server 2 Uni-Potsdam [永久リンク切れ ]
- ftp-Server 3 Uni-Potsdam [永久リンク切れ ]
- ftp-Server Uni-Bochum [永久リンク切れ ]
- ftp-Server SunSite [永久リンク切れ ]
すべてから検索
- ファイル検索.com
実際にすべてのファイルを見つける最後の場所である Web アーカイブ:
- IFC側のWebアーカイブ
さらに、IFC については以下をご覧ください:
- MIT のサーバー - Nathans アカウント
- MITのサーバー - スタッフサイド
