Отображение японских символов в программе TItle Bar of Java - PullRequest
3 голосов
/ 01 июня 2009

Я могу отображать японские символы везде, кроме строки заголовка главного окна (JFrame) в Java. Есть ли способ изменить шрифт этой строки заголовка, чтобы она могла отображать японские символы? Спасибо

Я использую Windows XP. Если это имеет значение, я использую внешний вид Java Substance.

Ответы [ 4 ]

3 голосов
/ 01 июня 2009

Строка заголовка окна управляется системным диспетчером окон, а не Swing. Вы не говорите, какую OS / GUI вы используете.

В Windows XP откройте панель управления дисплеем, выберите вкладку «Внешний вид» и нажмите кнопку «Дополнительно»; там вы можете изменить шрифт заголовка (хотя установленные в вашей системе шрифты могут не содержать нужных вам глифов).

Вот код, который проверяет, поддерживает ли системный шрифт по умолчанию глиф, который вам нужен (я понятия не имею, что это за символ; это симпатичный глиф из набора Katakana):

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);
            }
        });
    }
}
1 голос
/ 04 июня 2009
JFrame.setDefaultLookAndFeelDecorated(true);
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
UIManager.put( "InternalFrame.titleFont", Resources.jaDefault.deriveFont(16.0f) );

Try it ;)
0 голосов
/ 16 июня 2009

Я не знаком с Java Substance, но я испытал это при работе с веб-приложением. В основном символы японского, китайского и корейского языков будут отображаться в содержимом страницы, но не в строке заголовка браузера.

Это связано с тем, что оконная система управляет этой строкой заголовка, а не браузером. Судя по комментарию kdgregory, похоже, что это похоже на вашу ситуацию.

Чтобы система управления окнами понимала символы и не показывала неподдерживаемый «ящик», необходимо убедиться, что установлены правильные наборы символов. Для Windows XP следующие шаги решили проблему со строкой заголовка браузера:

  1. В меню «Пуск» Windows откройте панель управления.
  2. Щелкните значок «Язык и региональные стандарты», а затем перейдите на вкладку «Языки».
  3. В поле Поддержка дополнительных языков установите флажок Установить файлы для восточноазиатских языков.
  4. Нажмите Применить и ОК.
0 голосов
/ 03 июня 2009

Чтобы переопределить шрифт рамки, вам нужно определить внешний вид и позаботиться о ее внешнем виде. Это может или не может быть желательным, но в противном случае вы будете зависеть от системы. Некоторые выглядят и чувствуют, что у них неплохие украшения на окнах, другие - нет. Вещество в порядке. Сообщите 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, как указано в другом ответе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...