سؤال

هل من الممكن إضافة Jlabel فوق جليبيل آخر؟ شكرا.

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

المحلول

الجواب القصير هو نعم، ك JLabel هو Container, ، لذلك يمكن أن تقبل ComponentJLabel هي فرعية من Component) لإضافة إلى JLabel باستخدام add طريقة:

JLabel outsideLabel = new JLabel("Hello");
JLabel insideLabel = new JLabel("World");
outsideLabel.add(insideLabel);

في الكود أعلاه، insideLabel يضاف إلى outsideLabel.

ومع ذلك، بصريا، تظهر التسمية مع النص "Hello"، لذلك لا يمكن للمرء أن يرى العلامة الموجودة داخل الملصقات.

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


يحرر:

من التعليقات:

حسنا، ما أردت فعله هو أولا، وقراءة جزء معين من ملف، ثم عرض هذا الكسر في Jlabel. ما فكرت به هو تقسيم الكسر إلى 3 أجزاء، ثم استخدم تسمية لكل من الثلاثة. ثم ثانيا، أريد أن أكون قادرا على سحب الكسر، لذلك اعتقدت أنني أستطيع استخدام Jlabel آخر، ووضع 3'mini Jlabels 'على Jlabel الكبير. لا أعرف ما إذا كان هذا سيعمل على الرغم من ذلك ..: |

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

مكان جيد للبدء سيكون باستخدام مدراء التخطيط و دليل مرئي للمديرين تخطيط, ، سواء من دروس جافا.

يبدو وكأنه GridLayout يمكن أن يكون خيار واحد لإنجاز المهمة.

JPanel p = new JPanel(new GridLayout(0, 1));
p.add(new JLabel("One"));
p.add(new JLabel("Two"));
p.add(new JLabel("Three"));

في المثال أعلاه، JPanel مصنوع لاستخدام GridLayout كمدير تخطيط، ويقيل ليصبح صف من JLabelس.

نصائح أخرى

الجواب على سؤالك الأصلي هو نعم للأسباب المقدمة لإضافة أي مكون إلى حاوية.

السبب في أنك لا ترى الملصق الثاني هو لأنه افتراضي، يستخدم Jlabel مدير تخطيط NULL وحجم التسمية الثانية هو (0، 0) لذلك لا يوجد شيء للطلاء. لذلك كل ما عليك فعله هو تعيين حدود الملصق الثاني وبعيدا تذهب.

لا يمكنك استخدام مدير تخطيط إذا كنت ترغب في سحب المكونات حولها لأنه بمجرد تغيير حجم الإطار، وسيتم استدعاء "إدارة التخطيط" وسيتم إعادة تحديد موضع المكونات بناء على مدير التخطيط للمكون.

إنها مسألة تخطيط. يمكنك القيام بذلك باستخدام تخطيط NULL (مع مواقع مشفرة بجد) أو مع تخطيط مخصص.

يمكنك استخدام JLayeredPane وتعيين حدودها دون حدود.

يمكنك إضافة وضعها فوق بعضها البعض باستخدام الفجوة الأفقية أو الرأسية (HGAP، VGAP) سمات التخطيط
JPanel p = new JPanel(new GridLayout(2, 1,-40,0)); //the 40 is the hgap , make it the same with the label height .

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