私の Java アプリケーションでは、スクロールバー ポリシーが に設定された JScrollPane 内に JTextArea を保持するウィンドウがありますAS_NEEDED
。
アプリケーションを実行すると、JTextArea が次のように表示されます。
切り取りノブ (このような「標準」表現を反映していない) でスクロールバーが表示されるのはなぜですか?
フレームのレイアウトはGridBagLayout
で、私は Mac OS X 10.8.2 を使用しています。
私の Java アプリケーションでは、スクロールバー ポリシーが に設定された JScrollPane 内に JTextArea を保持するウィンドウがありますAS_NEEDED
。
アプリケーションを実行すると、JTextArea が次のように表示されます。
切り取りノブ (このような「標準」表現を反映していない) でスクロールバーが表示されるのはなぜですか?
フレームのレイアウトはGridBagLayout
で、私は Mac OS X 10.8.2 を使用しています。
これは、アプリが使用しているルック アンド フィールと、ネイティブ OS レイアウト コンポーネントとの Java の統合の制限に基づいています。スクリーンショットのものはNimbusのように見えます。
Swing アプリケーションは、常にルック アンド フィールをカスタム レンダリングし、どこでもネイティブ OS ウィジェットを使用するのにあまり適していません。その結果、一部の時間だけ、または特定のレイアウト コンポーネントでのみ OS と一致する奇妙な外観が得られます。
Java でのクロスプラットフォーム デスクトップ アプリの開発へようこそ。:(
アプリケーションの起動時にシステムのルック アンド フィールを取得するには、次のようにします。
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassname());
} catch (Exception e) {
// Handle exception
}
これにより、実行するシステムに関係なく、ルック アンド フィールがシステムのルック アンド フィールに設定されます。
前述のように、アプリケーションのデフォルトのルック アンド フィールは OSX の Aqua ではなく Nimbus のように見えますが、これも上記のスニペットで修正でき、ユーザーに UI オプションを提供して外観を変更することができます (気にする必要があります)。彼らが選んだものへの適用の感触。
あなたは Nimbus LookAndFeel を使用しています
http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html