سؤال

في أي وقت أقوم بإجراء عارض خلية مخصصة للحصول على jisters، أي عناصر أضيف إليها لا تستجيب للإجراءات. على سبيل المثال، إذا كان لدي العارض الخلوي إرجاع JPanel مع عناصر عليه، فإن أحدها لديه ActionListener، لا يستجيب على الإطلاق.

لماذا هذا؟

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

المحلول

يعود العنصر الذي تعيده كوسيلة عريض الخلية القائمة إلى ما هو بالضبط: استدعاء. وبعد سجل المستمعين مع jister (عموما، ستحتاج إلى قائمة ListSelectionLectioner).

نصائح أخرى

قد يبدو العارض أن يشبه مصنع للعودة إلى المكونات للخلايا، ولكن في الواقع يتبع تدفق الوزن النهج ويستخدم نفس مكون لتقديم جميع الخلايا (كل مكالمة إلى getListCellRendererComponent() من المفترض أن يتم إعادة تكوين نفس مثيل المكون لخلية محددة وإرجاعه حتى يمكن تقديم خلية).

بهذه الطريقة، يمكنك الحصول عليها JList (إلى جانب JTable و JTree) عرض كمية هائلة من الخلايا دون الحاجة إلى intercients مكونات لكل خلية. كأثر جانبي، لا يمكن أن يستجيب مكون التجسد للأحداث، حيث يتم استخدامه فقط أثناء حلقة Render، ولكن لا يظهر في شجرة المكون.

كما قال نيل كوففي، يمكنك إضافة مستمعيك إلى JList (JTable, JTree) بدلا من ذلك، واستخدم أساليب المساعد (locationToIndex(...), getCellBounds(...)) لإرسال الخلية التي تأثرت وبالتالي تعامل مع منطق الخلية المحددة.

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