سؤال

وبسيط سبيل المثال: 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 نفسك، ترجمتها إلى الأحرف المناسبة. ولكن هذا لن يكون بالأمر السهل القيام به. هل من المحتمل ان ينتهي إدخال الأحرف في الحقول النصية نفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top