我的申请是希伯来语的。运行我的应用程序的计算机均将英语设置为默认语言,将希伯来语设置为第二语言
每次他们需要向应用程序输入内容时,都必须“alt + shift”来更改语言。
在我的最后一个问题中——> Change input language in java 我对如何设置文本字段的区域设置有了一个很好的想法,而且效果非常好!
现在我需要在所有弹出输入对话框中执行相同的操作。
之前的解决方案是基于使用 JTextField FocusListener 的 FocusGained 方法, 现在我没有 FocusGained 选项,至少据我所知:)
IE:
response = JOptionPane.showInputDialog(requestLine.this, ("<html><b><font color=\"#8F0000 +
+ \"size=\"10\" face=\"Ariel\">" + "הכנס סטטוס חדש: " + "</font></p></html>"), "");
此选项 Pane 要求输入,并将其存储在字符串中,我需要它弹出以准备希伯来语输入。
这可能吗?
谢谢, 戴夫
最佳答案
这将重复 showInputDialog
随着语言环境的改变:
public class LocaleOptionPane extends JFrame {
public static void main(String[] args) {
new LocaleOptionPane();
}
LocaleOptionPane() {
Locale loc = new Locale("iw", "IL");
String message = "<html><b><font color=\"#8F0000\" size=\"10\" face=\"Ariel\">" + "הכנס סטטוס חדש: " + "</font></p></html>";
setVisible(true);
JOptionPane pane = new JOptionPane(message, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
pane.setWantsInput(true);
JDialog dialog = pane.createDialog(this, UIManager.getString("OptionPane.inputDialogTitle", loc));
dialog.getInputContext().selectInputMethod(loc); // pane.getInputContext... also works
dialog.setVisible(true);
dialog.dispose();
String response = (String) pane.getInputValue();
if (response == JOptionPane.UNINITIALIZED_VALUE)
System.out.println("aborted");
else
System.out.println(response);
}
}
注释:
- 我没有添加绿色问号图标,因为它看起来位置不太好,尽管可以通过更改
JOptionPane.PLAIN_MESSAGE
来添加它。至JOptionPane.QUESTION_MESSAGE
. - 您可以通过
pane.createDialog
更改标题打电话。 - 在检查
response
的值时实现您自己的行为. - 更改父组件。
关于java - 在 java 中将输入对话框区域设置更改为希伯来语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25972927/