Javaでメインウィンドウ(JFrame)のタイトルバー以外はどこでも日本語の文字を表示できます。日本語の文字を表示できるように、このタイトル バーのフォントを変更する方法はありますか? ありがとう
Windows XP を使用しています。これが重要な場合は、Java Substance のルック アンド フィールも使用しています。
Javaでメインウィンドウ(JFrame)のタイトルバー以外はどこでも日本語の文字を表示できます。日本語の文字を表示できるように、このタイトル バーのフォントを変更する方法はありますか? ありがとう
Windows XP を使用しています。これが重要な場合は、Java Substance のルック アンド フィールも使用しています。
ウィンドウのタイトル バーは、Swing ではなく、システム ウィンドウ マネージャーによって管理されます。使用している OS/GUI はわかりません。
Windows XP の場合、[ディスプレイ] コントロール パネルを開き、[外観] タブを選択して、[詳細設定] ボタンをクリックします。ここでタイトル フォントを変更できます (ただし、システムにインストールされているフォントには必要なグリフがない場合があります)。
システムの既定のフォントが必要なグリフをサポートしているかどうかを確認するコードを次に示します (文字が何かわかりません。カタカナ セットの見栄えの良いグリフです)。
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public class GlyphCheck
{
public static void main(String[] argv) throws Exception {
final String title = "Testing: \u30CD";
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JFrame frame = new JFrame(title);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JLabel label = new JLabel(title);
label.setSize(200, 100);
frame.setContentPane(label);
frame.pack();
frame.setVisible(true);
}
});
}
}
JFrame.setDefaultLookAndFeelDecorated(true);
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
UIManager.put( "InternalFrame.titleFont", Resources.jaDefault.deriveFont(16.0f) );
Try it ;)
フレームのフォントを上書きするには、外観に注意を払うようにルックアンドフィールを指示する必要があります。これは望ましい場合と望ましくない場合がありますが、そうでない場合はシステムに翻弄されます。いくつかのルックアンドフィールは非常に優れたウィンドウ装飾を備えていますが、そうでないものもあります。物質は大丈夫です。UIManagerに使用するフォントも指示します。
// Do this before you display any JFrame.
UIManager.put( "Frame.font", new Font( "Japanese", 12, Font.PLAIN ) );
JFrame.setDefaultLookAndFeelDecorated( true );
JFrame frame = new JFrame( title );
このアプローチ(動作するはずです-申し訳ありませんがテストされていません!)は、他の回答のように、ユーザーにWindows設定を変更する必要があることをユーザーに通知せずにプログラムを配布できることを意味します。
私は Java Substance に詳しくありませんが、Web アプリケーションで作業しているときにこれを経験しました。基本的に日本語、中国語、韓国語の文字はページのコンテンツに表示されますが、ブラウザのタイトル バーには表示されません。
これは、ブラウザではなく、ウィンドウ システムがこのタイトル バーを制御するためです。kdgregory のコメントに基づくと、これはあなたの状況と似ているように思えます。
ウィンドウシステムが文字を理解し、サポートされていない「ボックス」を表示しないようにするには、適切な文字セットがインストールされていることを確認する必要があります。Windows XP の場合、次の手順でブラウザのタイトル バーの問題を解決しました。