当我在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);
}
}}
}
最佳答案
这不是一个答案,因为您的代码可以正常工作。请尝试您的环境。
对我来说,它可以使用Windows 7上的默认字体完美地开箱即用。Java JDK1.8.0_31
public class JTextFieldExample extends JFrame {
private static final long serialVersionUID = 1L;
public JTextFieldExample() {
super("TextField Test Demo");
final Container container = getContentPane();
final JTextField textField=new JTextField("hello \u05DD\u05D5\u05DC\u05E9 Hello \u05DD\u05D5\u05DC\u05E9");
// optionally set RTL
textField.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
container.add(textField);
setSize(300,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(final String args[]) {
new JTextFieldExample();
}
}
用JTextField创建一个包含以下内容的窗口:
(对不起,如果我在希伯来语中使用了奇怪或令人反感的内容。我只是从另一页复制了unicode字符,他们声称这表示“你好”)。
我也尝试过在测试应用中编写代码,效果也很好。
同样,仅希伯来语,英语-希伯来语混合物也能正常工作。
但是,您可能希望将RTL方向设置为与希伯来语更好地匹配,并且我想在我的示例中,希伯来字母以相反的顺序显示,而与实际方向无关。
请执行下列操作:
关于java - JTextField中的希伯来语文本(Swing),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35509414/