سؤال

في اليوم الآخر كان هذا الرمز يعمل.لقد غيرت بعض الأشياء وأعدت تشغيله والآن لا يعمل كما هو مقصود.من الواضح أن هناك شيئًا قمت بتغييره أدى إلى تغيير السلوك، لكنني عدت وأرجعت كل هذه التغييرات ولا يزال الأمر لا يعمل.بغض النظر عن هذه المعلومات (للبدء)، لماذا لا يضع هذا الرمز شبكة 15 × 15 من JLabels داخل JPanel؟

gameBoard.setLayout(new FlowLayout());

for (int i = 0; i < 15; i++)
{
    for (int j = 0; j < 15; j++)
    {
        JLabel tile = new JLabel("");                       
     tile.setHorizontalAlignment(SwingConstants.CENTER);
        tile.setPreferredSize(new Dimension(27, 27));
        tile.setBorder(new EtchedBorder());
        tile.setEnabled(false);

        gameBoard.add(tile);
    }
}

gameBoard عبارة عن JPanel تم تعريفها من خلال NetBeans' GUI Builder.له حجم مفضل، الحد الأقصى للحجم (نفس الحجم المفضل).يتم تعطيل خيارات تغيير الحجم الأفقي/الرأسي، ولكن عند تشغيل هذا الرمز، يمتد كل زر أفقيًا في صف واحد دون أن ينقطع أبدًا.

إذا فهمت الأمر بشكل صحيح، فمن المفترض أن يقوم FlowLayout بتغليف العناصر عندما تصل إلى نهاية العنصر الذي تحتوي عليه.ده كان بيحصل قبل النهاردة، مش عارف فعلا السلوك ده توقف ليه؟

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

المحلول 4

وأنا أحسب من ذلك. على ما يبدو كان لي لضبط preferredSize ضمن القانون نفسه. مجرد وضع ذلك في إطار خصائص نتبيانس ليست كافية. الغريب.

نصائح أخرى

سيكون من الأفضل بكثير استخدام أ تخطيط الشبكة.

GridLayout gridLayout = new GridLayout(15, 15);

ربما تغير تخطيط التدفق بسبب استخدام شكل ومظهر جديدين أو خطوط مختلفة أو بعض ترقية Java VM.لا يُنصح بتحديد تخطيط التدفق لهذا الاستخدام لأنك تعتمد على الأحجام الأساسية التي يمكن أن تختلف عبر الأجهزة الافتراضية أو الشكل والمظهر.

في مصالح تعليم رجل كيف يصطادون السمك:

وأنظمة التحكم مراجعة كبيرة. حتى النظام الخاص بك هو جعل نسخة احتياطية من المصدر على فترات متكررة.

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

ولقد وجدت نجاحا كبيرا وسيطرة على استخدام TableLayout وأود أن أوصي به لأي شخص. يمكنك تحديد الأعمدة والصفوف باستخدام عدد معين من بكسل، أو يمكنك فقط استخدام TableLayout.PREFERRED لكل عمود و / أو الصف. لطيفة جدا وتخطيط مرن. نستخدمها في كل مكان.

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