1

Unix でデフォルトの金属のルック アンド フィールを使用するアプリケーションがあります。Solaris 10 の場合、これは Dialog フォントが Arial に変換されていることを意味します。Solaris 11 の場合、フォント ファイルが移動したため、フォントが変更されました。アプリケーション内のファイル以外は変更できないため、fontconfig.properties を変更することはできません。

1) アプリケーションの冒頭で Dialog=Arial (および Dialog.Bold = Arial.Bold) と言う方法はありますか?

2) 上記を行う方法が見つからなかったので、UIManager.put("Menu.font", new Font("Arial, Font.BOLD, 12)) コマンドを使用しています。ウィジェットの種類を見逃すことはありません) ただし、デフォルトを使用するときに Label.font を使用していない JTree は、 UIManager.put("Label.font", new Font を呼び出すと、Label.font の値を取得します。 ("Arial、Font.BOLD、12))。これは、UIManager.put("Tree.font", new Font("Arial, Font.PLAIN, 12)) がある場合でも発生します。

デフォルトを使用すると、ラベルは太字になり、ツリーは太字になりません。これで何が起こっているのか、また 2 つのフォントを強制的に Arial にする方法と、Labels を太字にし、JTree をプレーンにする方法について何か提案はありますか?

UI マネージャーの設定は、アプリケーションが最初に行うことです。

4

1 に答える 1

1

フォントが大きくなったため、コンボ ボックスまたはボタンの値の一部が切り詰められています。

確かに切り詰められたテキストは忌まわしいものFontですが、サイズを調整することは解決策ではありません. 代わりに、適切なレイアウトとpack()それを囲む を使用してWindowください。これにより、「このウィンドウは、そのサブコンポーネントの優先サイズとレイアウトに合わせてサイズ変更されます」。このでは、同じプログラムを複数のプラットフォームで比較します。各プラットフォームには、デフォルトのフォント ファミリにマップされた異なる物理フォントがあります。

このアプローチは本質的にかなり一般的であるため、質問を編集して、発生している特定の問題を示すsscceを含めると役立つ場合があります。

Java Swing で set[Preferred|Maximum|Minimum]Size メソッドを使用しないようにする必要がありますか?も参照してください。

于 2012-10-08T17:11:02.767 に答える