使用Swing在Java Jar中显示希伯来语

时间:2018-04-21 20:30:48

标签: java swing fonts utf hebrew

我正在构建一个使用Java Swing for GUI的程序,并且应该根据数据库中的数据显示项目。 我在IntelliJ Idea工作。

当我在IDE中工作并按下“运行”或“调试”按钮时,GUI启动正常,一切正常。

Correct Hebrew display

但是,在构建工件(导出到JAR)之后,在运行输出JAR时,我看不到希伯来字母,例如:

Hebrew letters displayed wrong

上面的图片是完全相同的数据库(背景颜色是随机的)。

构建上述JLabel的代码:

 JPanel panel = new JPanel();
 panel.setOpaque(false);
 Dimension size = new Dimension(this.getWidth(), TeaserPanel.NAME_HEIGHT);
 this.setPreferredSize(size);
 this.setMinimumSize(size);
 this.setMaximumSize(size);

 // The name label.
 JLabel name_label = new JLabel(this.m_item.getName(), SwingConstants.LEFT);

 // Set the font of the label (size, style & font type).
 Font font = Configuration.MAIN_ENGLISH_FONT.deriveFont(Font.BOLD, NAME_FONT_SIZE);
 if (font.canDisplay(this.m_item.getName().codePointAt(0)))
 {
     name_label.setFont(font);
 }
 else
 {
     name_label.setFont(new Font("Arial", Font.BOLD, NAME_FONT_SIZE));
 }
 panel.add(name_label);
 panel.revalidate();

所以,实质上,当m_item.getName()是一个希伯来字符串时,它显示错误。

导致这种情况的原因是什么?

提前致谢

0 个答案:

没有答案