当前位置: 首页 > 知识库问答 >
问题:

如何在java swing组件中添加两种字体,并使它们在用户切换键盘输入语言时自动切换?

师冥夜
2023-03-14

我正在开发一个应用程序,用户应该可以输入一些包含英语和波斯语的文本(和阿拉伯语一样:几乎相同的字符,从右到左书写)。

目前我使用的字体像Courier New,它支持两种语言,但它看起来真的很难看。我想使用一些更好看的字体,但这些字体只支持这些语言中的一种,为另一种语言显示无厘头的字符。所以我需要基于文本语言来使用它们。

那么一般来说,我如何使Java组件(特别是swing.jtextfieldswing.jlistboxswing.jtextcomponent)接受两种字体并适当切换以获得好看的GUI呢?

编辑:这里是我需要的一个例子。假设用户应该在一个swing.jTextField中输入(FPGA)之类的内容,并且输入所有内容。意思是(使用FPGA),FPGA是一个缩写,所以没有波斯语翻译。我需要设置一个字体与更好的外观和所有字体,支持Unicode是难看的波斯语部分。

现在,如果我将字体设置为像Times New Roman这样的字体,它只支持拉丁文,那么波斯字符将显示为空方块。另外,如果我将字体设置为b nazanin这样的东西,它只支持波斯语,那么拉丁字符将显示为空方块。我如何在一个Javahtml" target="_blank">组件中同时拥有两种字体。

共有1个答案

孔鸿云
2023-03-14
InputContext context = InputContext.getInstance();
if(context.getLocale().toString().equals("en_GB")){
    .setFont(*font for english keyboard*);
}
else if(context.getLocale().toString().equals("fa_IR")){
    .setFont(*font for persian keyboard*);
}
 类似资料:
  • 我正试图在Selenium和python中构建一个bot,它可以登录到SoundCloud并从它们的服务器执行一些其他任务。我已经让selenium点击了登录按钮,但是从那里我很难让selenium点击输入字段并在随后的Iframe中输入文本以发送电子邮件,有人能给我一些建议吗?:)

  • 问题: 如何实现实时语言切换? 解法: 首先你必须阅读 模板语言中的i18n支持, 然后尝试下面的代码。 文件: code.py import os import sys import gettext import web # File location directory. rootdir = os.path.abspath(os.path.dirname(__file__)) # i18n

  • 由于列表中最高角色的位置等于角色的数量,所以创建的每个角色都应该移动到完全相同的位置,从而将其下面的每个角色都低一个位置。 但这不是正在发生的事情。 在执行这些代码行并降低进程速度时(通过使用和/或),我看到了以下情况: null 如果您怀疑这是我的代码中根深蒂固的,请让我知道,因为我可以为您提供更多的细节。

  • 我有一个带有多个面板的JFrame类,我通过使用paintComponent(graphics g)方法绘制所有的图形,因此使用CardLayout没有任何用处。要切换帧,我只需点击一个按钮,比如回车,但问题是,当我切换面板时,paintCompenent中剩下的图形仍然存在。我还尝试使用panel.setvisible(false)使面板可见,这有点帮助,只是我要转换到的面板仍然不可见,即使在将

  • 本教程旨在指导您在uni-app(小程序,H5,APP(不含NVUE)等)中从0开始,到熟练使用多语言切换功能,在这里,我们使用的是vue-i18n插件,请您务必按照我们提供的步骤,完整的做好每一步的配置。 前言: i18n是一个专门用于处理多语言的插件,其义来自于internationalization(国际化),取其首尾两个字母i和n,中间部分nternationalizatio刚好18个字母