اذهب إلى المحتوى

السؤال

Recommended Posts

  • 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؟

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...