Windowsルック・アンド・フィールの更新

概要

Windowsルック・アンド・フィール下で実行される理想的なSwingアプリケーションとは、実行中の対応するネイティブなアプリケーションと区別がつかないものであるべきですが、ネイティブなWindowsルック・アンド・フィール (Windows 98、Windows 2000など)と既存のWindowsルック・アンド・フィール実装の両方の変更が原因で、この理想に現実性がなくなってしまいました。ただし、このリリースでは、Windowsデスクトップにシームレスに統合される、更新されたWindowsルック・アンド・フィールを提供しました。

このプロジェクトは独立したより小規模なプロジェクトの集まりで構成され、それぞれが以前のエミュレーションの欠如部分を修正したり、2000/98機能を追跡する機能を追加しました。このプロジェクトがSwingとAWTの両方にまたがることもありました。

新しい「windows2000」パッケージを導入するよりも、com.sun.java.swing.plaf.windowsのルック・アンド・フィールのパッケージを変更し、拡張する方法が選択されました。新しい機能のほとんどすべてがWindowsのネイティブなユーザー設定から無関係であるので、更新されたWindowsルック・アンド・フィール・パッケージは、Windows 95、Windows 98、Windows NTまたはWindows 2000のどのオペレーティング・システムであっても、順調に実行されます。つまり、実行中のSwingアプリケーションが特定のユーザー設定(メニューのフェードなど)が存在しないことを検出すると、Windowsルック・アンド・フィールはその機能を実行しません。

このプロジェクトの焦点は、量ではなく、質でした。高品質な結果で機能を実装することが難しいと判断した場合は、より良い再生度でエミュレートできる将来のリリースまで、その機能の実装を延期しました。

エミュレーション・バグの修正

Windowsルック・アンド・フィールには多くのバグ・フィールドがあり、このリリースでその多くが修正されました。これらのバグについては、「w2K」というキーワードで追跡しています。これらのWindowsルック・アンド・フィールのバグのリストは、「Windowsルック・アンド・フィールのバグ」を参照してください。

デスクトップのプロパティのサポート

Swing内の現在のWindowsルック・アンド・フィールでは、ユーザーのデスクトップに対するカラー・スキームのみをAWTのSystemColorメカニズムを通じて追跡しています。ただし、Windowsのデスクトップでは、フォント、サウンド、メトリックスなどより多くのGUIをユーザーが設定することができ、これらをいつでも変更することができて、Windowsのプログラムにその変更を動的に反映させることができます。Swingは、広い範囲のユーザー設定に対応し、また、ユーザーによって行われた動的な変更に対応してサポートするように改訂されました。詳細は、「Windowsデスクトップ関連プロパティのサポート」を参照してください。

列折返しのリスト

リストには1列を表示する幅しかありませんでしたが、Windows Explorerのペインのように、複数の列に折り返して表示することがサポートされるように更新されました。この機能は、Windowsファイル・チューザのより良いサポートのためにも使用されます。詳細は、JList仕様の更新を参照してください。

ホットトラッキングのツールバー・ボタン

ツールバーの内側に含まれるボタンが外見上平らになり、「ロールオーバー」されるときにだけ、ボーダーが表示されます。この機能はMetalのルック・アンド・フィールによってサポートされ、一般的なSwingツールバー機能として追加されました。

タイトル・バーのグラデーション

Windows 2000の最上位のウィンドウのタイトル・バーでは、特に指定しないかぎり、均質なバー・カラーでなく、グラデーションのパターンが使用されます。JFrameなどの最上位のウィンドウではこの方法は採用されませんでしたが、JInternalFrameのこのようなレンダリングを実装するためにJava2Dを使用する予定です。

スクロール・ホイールのサポート

今日のほとんどすべてのPCにはマウスにスクロール・ホイールが付属しており、これをサポートするために、AWTではスクロール・ホイール入力のサポートを追加中です。また、この新しいイベント・タイプを処理するようにSwingスクロール・コンポーネント(JScrollPaneJScrollbar)も変更中です。AWTサポートの詳細は、マウス・ホイールのAPIを参照してください。また、Swing内のサポートの詳細は、JScrollPaneの変更点を参照してください。

キーボード・ナビゲーションの非表示

ウィンドウ内でユーザーは、アプリケーションで[Alt]キーが押されるまでキーボード・ナビゲーションの手掛かりを表示しないようにするデスクトップのプロパティを設定できます。[Alt]キーが押された時点で、キーボード・ナビゲーションの手掛かりが表示されます。ユーザーがデスクトップ上でこのオプションを設定すると、Swingはメニュー内にこの動作を実装します。詳細は、キーボード・ナビゲーションの仕様を参照してください。

メニュー/ツールチップの切替え効果

Windowsルック・アンド・フィールへ追加されたもっとも視覚的にわかりやすい機能は、新しい様式的なメニュー・アニメーションです。Windows 98の場合、スライドして引き出すことで表示されるようにメニューを設定できます。Windows 2000では、メニューとツールチップに時流に合った様式のフェードイン/フェードアウトが導入されました。

もっとも正確な視覚効果が保証されるように、この機能は、最上位の「重量級の」ウィンドウのメニューとツールチップに集中して実装されました。これは、AWT内部のMicrosoft Windowsネイティブ・ウィンドウ・アニメーション機能を利用しています。

ファイル・チューザの改訂

SwingのJFileChooserコンポーネントはWindowsのファイル・チューザと非常に似ていますが、ネットワークのブラウジングおよび「マイ・コンピュータ」、「マイ・ネットワーク」などのWindows仮想デスクトップへのサポートの不足など、Windowsプラットフォーム上での使用を制限するいくつかの欠点があります。詳細は、JFileChooser仕様の更新を参照してください。


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.