سؤال
أقوم بمشروع مدرسي وأحتاج إلى مساعدة في التصميم لأنه يقوم ببعض الأشياء غير التقليدية.
أنا فقط بحاجة إلى مساعدة في اللوحة الجنوبية. تم تنظيم اللوحة الجنوبية شيء مثل هذا:
JRadioButton JLabel1 JLabel2
JRadioButton JLabel1 JLabel2
JLabel3--------JTextField----------JButton
لقد جربت ما يلي:
- اضبط جنوب Jpanel على Gridlayout مع 3 صفوف
- jpanel آخر أيضًا مع GridLayout مع 3 صفوف تمت إضافة إلى الصف الأول من Gridlayout.
- كرر #2 مع الصفوف الثانية والثالثة. الصف الثاني يحتوي على 3 صفوف من 3 أعمدة.
- وأضاف المكونات في الصفوف/الأعمدة المناسبة.
لا ينشط الطريقة التي أحتاجها بها. لقد جربت بعض التقنيات الأخرى التي لا أستطيع تذكرها. أي اقتراحات؟ شكرًا لك. إليك صورة لما يجب أن تبدو عليه اللوحة الجنوبية: http://www.freeimagehosting.net/image.php؟d14a73db5e.jpg
يبدأ في "تاريخ البدء ..."
المحلول
إنشاء جديد JPanel
والاستخدام تخطيط المجموعة من أجل هذا.
مثل هذا http://img163.imageshack.us/img163/1403/capturadepantalla201001001bo.png
يتيح لك استخدام مجموعة المجموعة تحديد المكونات التي ستدخل في المجموعة الأفقية والمكونات التي ستذهب في المجموعة العمودية.
c1, c2, c3
c4, c5, c6
panel[ c7, c8, c9 ]
إليك كيفية تخطيط الصورة أعلاه:
// Layout Horizontal components
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent( c1 )
.addComponent( c4 )
).addGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent( c2 )
.addComponent( c5)
).addGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent( c3 )
.addComponent( c6 )
)
);
// Layout vertical components
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent( c1 )
.addComponent( c2 )
.addComponent( c3 )
).addGroup(
layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent( c4 )
.addComponent( c5 )
.addComponent( c6 )
)
);
southPanel.add( panel ); // the start-end dates
southPanel.add( bookIt, BorderLayout.SOUTH ); // the enter your name...
جربها.
نصائح أخرى
ما سأفعله في جنوب Jpanel هو جعلها شبكة 1 × 3 ، ثم أضف المكونات الثلاثة للصف الأول إلى صندوق أفقي وأضفها إلى الشبكة ، ثم المكونات الثلاثة للصف الثاني إلى صندوق أفقي آخر وأضفه إلى الشبكة ، ثم المكونات الثلاثة للصف الثالث في شبكة 3x1 وإضافتها إلى الشبكة. بعد ذلك ، يمكنك ضبط المظهر الدقيق الذي تريده للسطرين الأولين عن طريق إضافة مكونات غراء ودعامة مختلفة.
أحقق معظم تخطيطاتي من خلال وضع JPanels أو الصناديق داخل الآخرين مع تخطيطات مختلفة. يمنحك هذا تحكمًا جيدًا في ما تريده ، ويسمح لك ببناء قطعة في وقت واحد.
يبدو أنك تريد GridLayout مع 3 الأعمدة, ، ليس 3 الصفوف للوحة السفلية هناك.
في الصورة في الرابط الذي قمت بتضمينه ، يكون حقل النص أوسع من JLabel أو الزر. قد ترغب في تجربة ملف Gridbaglayout في حين أن.
لقد تعثرت مؤخرًا على Miglayout ، سأحاول استخدامه في مشروعي الجامعي التالي ، وسأصدرك أن ننصحك بتقديم لقطة أيضًا ، يبدو أنها رائعة وبسيطة.