"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تعيين اختصارات لوحة المفاتيح للأزرار في Java؟

كيف يمكنني تعيين اختصارات لوحة المفاتيح للأزرار في Java؟

تم النشر بتاريخ 2024-11-03
تصفح:766

How Can I Assign Keyboard Shortcuts to Buttons in Java?

كيفية ربط مفتاح اختصار لزر JButton في Java

في Java، يمكنك تعيين مفاتيح اختصار للأزرار (على سبيل المثال، النقر فوق الزر يؤدي مفتاح "الحذف" إلى النقر على الزر) عن طريق تنفيذ إجراء، وربطه بضغطة مفتاح، ثم ربط الإجراء بالزر.

للقيام بذلك، اتبع الخطوات التالية:

  1. قم بإنشاء فئة إجراء تحدد السلوك عند الضغط على مفتاح الاختصار، عادةً باستخدام فئة داخلية مجهولة.
  2. سجل الإجراء باستخدام الزر باستخدام استدعاء Button.addActionListener().
  3. قم بتعيين مفتاح الاختصار للإجراء باستخدام InputMap وActionMap كما هو موضح:

      يقوم getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) باسترداد خريطة الإدخال لأحداث لوحة المفاتيح عندما يكون التركيز على لوحة الأزرار.
    • put(KeyStroke, Object) يربط المفتاح المطلوب بالإجراء.
    • getActionMap().put(Object, Action) يربط الإجراء بالمفتاح المعين.
إليك مثال لمقتطف التعليمات البرمجية الذي ينفذ هذه الخطوات:

public class CalculatorPanel extends JPanel {
    // ... (code removed for brevity)

    for (int i = 0; i يحدد هذا الرمز إجراءً يقوم بإدراج قيمة ضغطة المفتاح في حقل النص عند تشغيله. عند إنشاء الأزرار، يتم تعيينها للمفاتيح الخاصة بها على كل من لوحة المفاتيح الرئيسية والرقمية. ونتيجة لذلك، يؤدي الضغط على المفاتيح المقابلة (على سبيل المثال، "1" أو "NUMPAD 1") إلى تنشيط الزر المرتبط.

بيان الافراج أعيد طبع هذه المقالة على: 1729684384 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3