جافا سوينغ:لا يعمل Ctrl+F1 على مستوى العالم، بل يعمل مع كل مجموعة مفاتيح أخرى

StackOverflow https://stackoverflow.com/questions/138533

  •  02-07-2019
  •  | 
  •  

سؤال

لدي واجهة مستخدم متأرجحة مع جزء مبوب في الشمال.تتم إضافة العديد من الأحداث الرئيسية إلى خريطة الإدخال الخاصة بها:

InputMap paneInputMap = pane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
paneInputMap.put( KeyStroke.getKeyStroke( KeyEvent.VK_E, KeyEvent.CTRL_MASK ), "finish");
paneInputMap.put( KeyStroke.getKeyStroke( KeyEvent.VK_F1, KeyEvent.CTRL_MASK ), "toggletoolbar");

إذا تم التركيز على الجزء المبوب أو زر آخر في شريط الأدوات، كنترول+F1 ليس لديه وظيفة.إذا تم التركيز على مكون آخر (على سبيل المثال.جي تري)، كنترول+F1 ينفذ العمل.

المشكلة هي أنها تعمل في كل مكان إذا قمت بتغيير رمز المفتاح إلى على سبيل المثال. VK_F2.

المفتاح F1 لا يستخدم في أي مكان آخر في البرنامج.

اي فكرة؟

شكرا ، أندريه

يحرر: أعطى البحث عن النص الكامل في كود مصدر جافا الإجابة:ال ToolTipManager يسجل المفتاح كنترول+F1 لعرض نص تلميح الأداة في حالة الضغط على مجموعة المفاتيح.لذا، إذا تم التركيز على زر به تلميح أداة، كنترول+F1 يتم التعامل معه من قبل ToolTipManager.وإلا فإن عملي يسمى.

هل كانت مفيدة؟

المحلول

لكي يحصل هذا على إجابة، إليك الحل المنسوخ من تعديلك في السؤال.؛-)

يقوم ToolTipManager بتسجيل المفتاح كنترول+F1 لعرض نص تلميح الأدوات إذا تم الضغط على مجموعة المفاتيح.لذلك إذا كان زر مع تلميح الأدوات يركز ، كنترول+F1 يتم التعامل معها من قبل tooltipmanager.وإلا فإن عملي يسمى.

نصائح أخرى

قد يكون نظام التشغيل يعيد استهداف F1 مفتاح؟قم بتثبيت مستمع رئيسي وشاهد الأحداث التي يتم التعامل معها.

بالمناسبة:سيكون من المفيد أن تتمكن من تعديل سؤالك وإدراج بعض التعليمات البرمجية القابلة للاختبار.

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