سؤال

أقوم بمشروع مدرسي وأحتاج إلى مساعدة في التصميم لأنه يقوم ببعض الأشياء غير التقليدية.

أنا فقط بحاجة إلى مساعدة في اللوحة الجنوبية. تم تنظيم اللوحة الجنوبية شيء مثل هذا:

           JRadioButton JLabel1 JLabel2
           JRadioButton JLabel1 JLabel2
    JLabel3--------JTextField----------JButton

لقد جربت ما يلي:

  1. اضبط جنوب Jpanel على Gridlayout مع 3 صفوف
  2. jpanel آخر أيضًا مع GridLayout مع 3 صفوف تمت إضافة إلى الصف الأول من Gridlayout.
  3. كرر #2 مع الصفوف الثانية والثالثة. الصف الثاني يحتوي على 3 صفوف من 3 أعمدة.
  4. وأضاف المكونات في الصفوف/الأعمدة المناسبة.

لا ينشط الطريقة التي أحتاجها بها. لقد جربت بعض التقنيات الأخرى التي لا أستطيع تذكرها. أي اقتراحات؟ شكرًا لك. إليك صورة لما يجب أن تبدو عليه اللوحة الجنوبية: 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 ، سأحاول استخدامه في مشروعي الجامعي التالي ، وسأصدرك أن ننصحك بتقديم لقطة أيضًا ، يبدو أنها رائعة وبسيطة.

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