سؤال

أحاول حاليًا إنشاء لوحة موسعة في Swing (أشبه بلوحة WPF's Expander التحكم) وأرغب في الاحتفاظ بالطرق المعتادة للتعامل معه (أي.ه. setLayout, add, ، إلخ.).يجب توجيههم فقط إلى اللوحة المضمنة (اللوحة الظاهرة أو المخفية).

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

أم يجب أن أجعل اللوحة المضمنة مرئية للخارج وأجبر المستخدمين على استخدام شيء مثل ExpanderPanel.getInnerPanel() بدلاً من.ولكن بعد ذلك لا يوجد بديل بديل لـ JPanel الذي أعتقد أنه سيكون من الجميل أن يكون.

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

المحلول

في 1.5 (العش) مراجيح توجيه عدد قليل من الطرق إلى جزء المحتويات في JFrame، JApplet، الخ بينما هناك يبدو أن بعض فوائد الاستخدام لأولئك الذين بدأت للتو، فإنه في الواقع لا يحل المشكلة. لذلك على الجميع أن يتعامل مع API يتصرف بغرابة جدا. لذا نصيحتي لتجنب هذا النهج.

نصائح أخرى

نلقي نظرة على JXTaskPane من سوينغكس مشروع.إنه يفعل بالفعل ما تحتاجه.

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

وJPanel ع = JPanel جديد ()؛ // تفعل شيئا مع JPanel ...

وContainerWidget.setContent (ع)؛

وContainerWidget.expandPanel (ع، صحيح)؛

هل على somethign مثل هذا العمل؟

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