سؤال

هل هناك طريقة لإضافة عناصر إلى Gridlayout تضيفها أفقيا بدلا من رأسيا؟ أرغب في الأساس في ملء صف بأكمله مع عناصر قبل أن يبدأ بعد ذلك.

آمل أنني اتخذت سؤالي واضحة.

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

المحلول

أود أن أقترح gridbaglayout. و gridbagconstrants.

إنه كثير مثل Gridlayout، ولكن مع Gridbagconstrants، يمكنك تحديد إحداثيات X و Y في المكون، ويمكنك القيام عمود و صف يمتد.

سيبدو شيء هكذا:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();

JPanel panel = new JPanel();
JLabel label = new JLabel("foo");

panel.setLayout(layout);

c.gridx = 0;
c.gridy = 0;
panel.add(label, c);

نصائح أخرى

الذي - التي يكون كيف يعمل Gridlayout.

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

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

يحرر: لست متأكدا من السبب، ولكن إذا حددت عدد الصفوف كما 0 (على سبيل المثال new GridLayout(0, 9), ، يبدو أن يعمل بشكل صحيح.

في الواقع يجب عليك استخدام growplayout. إنه جديد (منذ JDK 1.6) ورهيبة جدا. يمنحك طن من المرونة في التصميم.

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

verticalgridlayout.

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