1

私の Java アプリケーションでは、スクロールバー ポリシーが に設定された JScrollPane 内に JTextArea を保持するウィンドウがありますAS_NEEDED

アプリケーションを実行すると、JTextArea が次のように表示されます。 JTextArea を使用

切り取りノブ (このような「標準」表現を反映していない) でスクロールバーが表示されるのはなぜですか?

フレームのレイアウトはGridBagLayoutで、私は Mac OS X 10.8.2 を使用しています。

4

3 に答える 3

4

これは、アプリが使用しているルック アンド フィールと、ネイティブ OS レイアウト コンポーネントとの Java の統合の制限に基づいています。スクリーンショットのものはNimbusのように見えます。

Swing アプリケーションは、常にルック アンド フィールをカスタム レンダリングし、どこでもネイティブ OS ウィジェットを使用するのにあまり適していません。その結果、一部の時間だけ、または特定のレイアウト コンポーネントでのみ OS と一致する奇妙な外観が得られます。

Java でのクロスプラットフォーム デスクトップ アプリの開発へようこそ。:(

于 2012-12-05T16:06:54.573 に答える
4

アプリケーションの起動時にシステムのルック アンド フィールを取得するには、次のようにします。

try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassname());
} catch (Exception e) {
    // Handle exception
}

これにより、実行するシステムに関係なく、ルック アンド フィールがシステムのルック アンド フィールに設定されます。

前述のように、アプリケーションのデフォルトのルック アンド フィールは OSX の Aqua ではなく Nimbus のように見えますが、これも上記のスニペットで修正でき、ユーザーに UI オプションを提供して外観を変更することができます (気にする必要があります)。彼らが選んだものへの適用の感触。

于 2012-12-05T16:09:54.243 に答える
1

あなたは Nimbus LookAndFeel を使用しています

http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html

于 2012-12-05T16:07:01.270 に答える