الحفاظ على تخطيط لوحة المفاتيح في JTextfield؟
-
08-07-2019 - |
سؤال
وبسيط سبيل المثال: 2 JTextFields
، واحدة للكلمة الأسبانية بعضها البعض لانها الترجمة.
هل هناك طريقة للحفاظ على تخطيط لوحة المفاتيح في JTextField
بحيث ان المستخدم لا يجب أن الانتقال ذهابا وإيابا؟
وTIA.
المحلول
نعم، يستخدم هذا الرمز عرض تخطيط لوحة المفاتيح لغات مختارة في كل حقل النص:
public class InputMethodTest {
public static void main(String[] args) {
final InputContext en = InputContext.getInstance();
en.selectInputMethod(Locale.UK);
final InputContext es = InputContext.getInstance();
es.selectInputMethod(new Locale("es", "ES"));
JTextArea english = new JTextArea() {
@Override
public InputContext getInputContext() {
return en;
}
};
JTextArea spanish = new JTextArea() {
@Override
public InputContext getInputContext() {
return es;
}
};
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new GridLayout());
frame.getContentPane().add(new JScrollPane(english));
frame.getContentPane().add(new JScrollPane(spanish));
frame.setSize(600, 400);
frame.setVisible(true);
}
}
واختبار على نظام التشغيل Windows XP الرئيسية مع EN ES وتخطيطات لوحة المفاتيح المثبتة (عن طريق لوحة التحكم> الخيارات الإقليمية وخيارات اللغة> لغات> التفاصيل ...). انظر جافا الإدخال إطار أسلوب للحصول على مزيد من التفاصيل .
نصائح أخرى
ولا تدار تخطيطات لوحة المفاتيح من قبل نظام التشغيل أو سطح المكتب البيئة.
إذا كنت تعرف بالضبط تخطيط لوحة المفاتيح الإسبانية في مسألة هل يمكن معالجة نظريا KeyEvents نفسك، ترجمتها إلى الأحرف المناسبة. ولكن هذا لن يكون بالأمر السهل القيام به. هل من المحتمل ان ينتهي إدخال الأحرف في الحقول النصية نفسك.