• 0

كيف أتعامل مع Grid Layout في جافا swing؟

أريد ترتيب العناصر في تطبيق جافا باستخدام Grid Layout كيف أقوم بذلك؟

 

تمّ تعديل بواسطة Eng.Amal

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

تُعدّ Grid Layout من أكثر النماذج استخدامًا في ترتيب العناصر ضمن واجهات تطبيقات جافا وذلك بسبب مرونتها الكبيرة وسهولة توضع العناصر بأي طريقة يرغب المبرمج أن يظهر الواجهة بها. يتم إنشاء Grid Layout عن طريق إنشاء غرض من الصف GridLayout وتمرير معاملين في المُنشئ Constructor هما عدد الأسطر وعدد الأعمدة.

يمكن إنشاء Grid Layout في المُنشئ Constructor الخاص بالغرض JPanel كما في المثال التالي:

JPanel panel = new JPanel(new GridLayout(2,2));

ومن ثم إضافة JPanel إلى واجهة التطبيق JFrame.

لنفرض أننا نريد صنع نموذج لحاسبة ونريد إنشاء مجموعة من الأزرار من 0-9 وأزرار العمليات الأربع (+,-,/,*) وزر مسح clear باستخدام GridLayout، وإضافة حقل JTextField في بداية الواجهة.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class GridLayoutExample extends JFrame {

	JPanel panelTxt = new JPanel(new BorderLayout());
	
	JPanel panel = new JPanel(new GridLayout(4,4));
	
	JTextField txtField = new JTextField();

	JButton btnPlus = new JButton("+");
	JButton btnMinus = new JButton("-");
	JButton btnDivid = new JButton("/");
	JButton btnMultiply = new JButton("*");
	JButton btnClear = new JButton("C");
	
	public GridLayoutExample() {
	
		for(int i=0; i<10; i++)
		{
			JButton btn = new JButton(i+"");
		
			panel.add(btn);
		}
		panel.add(btnPlus);
		panel.add(btnMinus);
		panel.add(btnDivid);
		panel.add(btnMultiply);
		panel.add(btnClear);
		
		txtField.setPreferredSize(new Dimension(20, 100));
		panelTxt.add(txtField,BorderLayout.NORTH);
		panelTxt.add(panel,BorderLayout.CENTER);
		this.add(panelTxt);
		setSize(500, 500);
		setVisible(true);
		setTitle("Grid Layout Example");
	}
	public static void main(String[] args) {
		JMenuExample test = new JMenuExample();
		test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

عند إضافة العناصر إلى GridLayout فإن كل عنصر يأخذ ترتيبه بشكل تلقائي ابتداءً من الخلية 0.

يمكنك تحديد رقم الخلية الذي تود وضع العنصر فيها بواسطة المعامل الثاني للدالة add وهي index حيث يوضع فيه رقم الخلية مثال:

panel.add(btnPlus,5);

أي أنه سيتم وضع الزر الخاص بعملية الجمع في الخانة رقم 5.

GridLayout.thumb.png.9a5bc5af341e4e35118

كيف أتعامل مع Grid Layout في جافا swing؟

3 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن