3

除了Java中主窗口(JFrame)的标题栏外,我可以在任何地方显示日文字符。有没有办法改变这个标题栏的字体,让它可以显示日文字符?谢谢

我正在使用 Windows XP。如果这很重要,我也在使用 Java Substance 的外观和感觉。

4

4 回答 4

3

窗口的标题栏由系统窗口管理器而不是 Swing 管理。你没有说你正在使用什么操作系统/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);
            }
        });
    }
}
于 2009-06-01T18:42:06.293 回答
1
JFrame.setDefaultLookAndFeelDecorated(true);
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
UIManager.put( "InternalFrame.titleFont", Resources.jaDefault.deriveFont(16.0f) );

Try it ;)
于 2009-06-04T09:25:12.877 回答
0

我不熟悉 Java Substance,但我在开发 web 应用程序时遇到过这种情况。基本上日文、中文和韩文字符会显示在页面的内容中,但不会显示在浏览器标题栏中。

这是因为窗口系统控制这个标题栏,而不是浏览器。根据 kdgregory 的评论,听起来这与您的情况相似。

为了让窗口系统理解字符并且不显示不受支持的“框”,您必须确保安装了正确的字符集。对于 Windows XP,以下步骤解决了浏览器标题栏的问题:

  1. 在 Windows 开始菜单上,打开控制面板。
  2. 单击区域和语言选项图标,然后单击语言选项卡。
  3. 在补充语言支持框中,选中为东亚语言安装文件的框。
  4. 单击应用和确定。
于 2009-06-15T21:46:58.807 回答
0

为了覆盖 Frame 的字体,您需要告诉外观来照顾它的外观。这可能是可取的,也可能不是可取的,但否则您将受制于系统。有些外观和感觉有相当不错的窗户装饰,有些则不然。物质没问题。告诉 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 设置。

于 2009-06-02T22:01:12.290 回答