Java

内部フレーム -
JInternalFrame、JDesktopPane、および関連するクラス

Swing のその他の変更

デフォルトでは表示されない内部フレーム

バージョン 1.2 では、内部フレームはデフォルトで表示されていましたが、現在では、最初は表示されなくなりました。JInternalFrame を画面上に表示するには、次のコードを使います。
      anInternalFrame.setVisible(true);
      

変更の理由は、Swing のデフォルトの表示規則では、JFrame、JDialog などのトップレベルのコンポーネントのデフォルトの表示が false で、残りのコンポーネントのデフォルトの表示が true だからです。これは、JFrame が構築されると、JFrame に対する setVisible(true) の 1 つの呼び出しで、JFrame とその内容のすべてが表示されるようになっています。

JInternalFrame はトップレベルのコンポーネントではありませんが、多くの場合に JFrame と同じように動作する必要があります。特に、JFrame の Windows イベントに応じて JInternalFrame イベントをトリガする必要があります。このようなイベントの 1 つ INTERNAL_FRAME_OPENED は、初期表示を false から true に変更することに対してトリガされます。バージョン 1.3 より前のバージョンでは、このような変更に対してこのイベントはトリガされませんでした。

このバグを修正し、JInternalFrame に、より重量の親類 JFrame へのより高い互換性を持たせるため、Java 2 プラットフォームのバージョン 1.3 からは、JInternalFrame のデフォルトの表示を false に変更しました。このため、内部フレームを表示するには、フレームを親に追加した後、単に setVisible(true) を呼び出します。

JInternalFrame に追加された setLayer(int layer) メソッド

JInternalFrame の setLayer() メソッドは、beans イントロスペクタがこれをプロパティとして認識できるように int 型をとります。

以下を参照してください。

追加された protected BasicInternalFrameUI.uninstallListeners() メソッド

以前は、BasicInternalFrameTitlePane がそのリスナーを必要としなくなっても、リスナーが削除されることはありませんでした (これがメモリリークの原因となっていた)。この動作が改善されました。

以下を参照してください。

JInternalFrame の「クローズ」プロパティ

  1. defaultCloseOperation のデフォルト設定が HIDE_ON_CLOSE から DISPOSE_ON_CLOSE に変更されました。クライアントが、拒否可能なプロパティ機構だけの使用 (もっともシンプルであるためにこの手法を使用することが推奨されている) を望む場合にそれが可能になるように、この変更が行われました。
  2. JInternalFrame の doDefaultCloseAction メソッドが、private から public に変更されました。これは、UI からの呼び出しを可能にするためです。これまで、UI は doDefaultCloseAction を呼び出す JInternalFrame の public setClosed メソッドを呼び出すだけでした。しかし、プログラムによってフレームを閉じる場合には setClosed が使用されるため、doDefaultCloseAction を呼び出す必要はありません。 これは、defaultCloseOperation がユーザにより開始されたクローズ操作用にだけ定義されているためです。

以下を参照してください。

JInternalFrame の通常のフレーム

JInternalFrame に対して新規メソッド getNormalBounds() を使用することにより、内部フレームの通常のサイズを取得することが可能になりました。

以下を参照してください。

JInternalFrame に追加された getFocusOwner メソッド

JInternalFrame に追加された新規メソッドは次のとおりです。

InternalFrameEvent に追加された getInternalFrame メソッド

InternalFrameEvent に追加された新規メソッドは次のとおりです。

public に変更された MetalInternalFrameTitlePane クラス

以下を参照してください。

JInternalFrame に追加された restoreSubcomponentFocus メソッド

JInternalFrame に追加された新規メソッドは次のとおりです。

JDesktopPane に追加された setDragMode メソッド

JDesktopPane に追加された新規メソッドは次のとおりです。

Copyright © 1999 Sun Microsystems, Inc. All Rights Reserved.

コメントの送付先:swing-feedback@java.sun.com。 これは購読リストではありません。
Sun
Java ソフトウェア