use*_*179 5 java swing jtextfield hebrew
当我这样做fileText.setText(path)的JTextField,它工作得很好,除非文字是希伯来文(或结合英语和希伯来语).然后我得到这样的东西:
我尝试了不同的字体(甚至在其中提到了"希伯来语"的字体),但它没有帮助.我如何解决它?
顺便说一下,它与ToolTipText(fileText.setToolTipText(path))正常工作
这是我的代码:
// browse files or folders
public void browse(JTextField txtField) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File selectedDir = fileChooser.getSelectedFile();
String path = selectedDir.getAbsolutePath();
if (txtField == srcText) {
srcText.setText(path);
srcText.setToolTipText(path);
}
else {
if (txtField == dstText) {
dstText.setText(path);
dstText.setToolTipText(path);
}
}}
}
Run Code Online (Sandbox Code Playgroud)
不是答案,因为您的代码按原样运行良好。请尝试您的环境。
\n\n对我来说,它可以在 Windows 7 上使用默认字体完美地开箱即用。 Java JDK1.8.0_31
\n\npublic class JTextFieldExample extends JFrame {\n\n private static final long serialVersionUID = 1L;\n\n public JTextFieldExample() {\n super("TextField Test Demo");\n final Container container = getContentPane();\n final JTextField textField=new JTextField("hello \\u05DD\\u05D5\\u05DC\\u05E9 Hello \\u05DD\\u05D5\\u05DC\\u05E9"); \n // optionally set RTL\n textField.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);\n container.add(textField);\n setSize(300,100);\n setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n setVisible(true);\n }\n\n public static void main(final String args[]) {\n new JTextFieldExample();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n创建一个带有 JTextField 的窗口,其中包含:
\n\n\n\n\n你好\xd7\x9d\xd7\x95\xd7\x9c\xd7\xa9 你好\xd7\x9d\xd7\x95\xd7\x9c\xd7\xa9
\n
(如果我在希伯来语中使用了一些奇怪或冒犯性的东西,我很抱歉。我刚刚从另一个页面复制了 unicode 字符,他们声称这意味着“你好”)。
\n\n我还在测试应用程序中尝试过您的代码,效果也很好。\n此外,仅希伯来语、英语-希伯来语混合也运行良好。
\n\n但是,您可能更喜欢设置 RTL 方向以更好地匹配希伯来语,我想在我的示例中,希伯来语字母以相反的顺序显示,而不考虑实际方向。
\n\n请执行下列操作:
\n\n| 归档时间: |
|
| 查看次数: |
498 次 |
| 最近记录: |