लेआउट सेट करना (Setting Layouts)

जावा में स्क्रीन पर प्रदर्शित होने वाले कंट्रोल्स को लेआउट मैनेजर की सहायता से अलग-अलग प्रकार से व्यवस्थित किया जा सकता है। लेआउट को सेट करने के लिए setLayout() मैथड का प्रयोग किया जाता है। java.awt पैकेज में निम्न पांच प्रकार की लेआउट मैनेजर क्लास होती हैंः

  • FlowLayout
  • BorderLayout
  • GridLayout
  • GridBagLayout
  • CardLayout

FlowLayout class

इस क्लास का प्रयोग करके कंपोनेंट्स को पैराग्राफ के टैक्स्ट की भांति एक फ्लो में सेट किया जा सकता है। यह डिफाॅल्ट लेआउट होता है। इस क्लास के कंस्ट्रक्टर्स की सहायता से कंट्रोल्स का अलाइनमेंट (LEFT, RIGHT, CENTER, LEADING, TRAILING) तथा इनके बीच की दूरी भी सेट की जा सकती है।

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

/*<applet code="MyApplet.class" height=200 width=200>*/

public class MyApplet extends Applet implements ActionListener
{
	TextField t1, t2, t3;
	Button b1;
	String str;
	public void init()
	{
		FlowLayout fl = new FlowLayout(FlowLayout.LEFT);
		setLayout(fl);

		t1 = new TextField(10);
		t2 = new TextField(10);
		t3 = new TextField(10);

		b1 = new Button("Calc");

		add(t1);
		add(t2);
		add(t3);
		add(b1);
			
		t1.setText("0");
		t2.setText("0");
		t3.setText("0");

		b1.addActionListener(this);
	}

	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == b1)
		{
			int a, b, c;
			a = Integer.parseInt(t1.getText());
			b = Integer.parseInt(t2.getText());
			c = a + b;
			str = String.valueOf(c);
			t3.setText(str);
		}
	}
}

BorderLayout class

इस क्लास का प्रयोग करके किसी कंटेनर में कंपोनेंट्स जैसे बटन आदि को पांच क्षेत्रों (North, East, West, South, Center) में व्यवस्थित कर सकते हैं। इस क्लास के कंस्ट्रक्टर्स की सहायता से कंट्रोल्स के बीच की दूरी भी सेट की जा सकती है।

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

/*<applet code="MyApplet.class" height=200 width=200>*/

public class MyApplet extends Applet implements ActionListener
{
	TextField t1, t2, t3;
	Button b1;
	String str;
	public void init()
	{
		BorderLayout bl = new BorderLayout();
		setLayout(bl);

		t1 = new TextField(10);
		t2 = new TextField(10);
		t3 = new TextField(10);

		b1 = new Button("Calc");

		add(t1, BorderLayout.EAST);
		add(t2, BorderLayout.WEST);
		add(t3, BorderLayout.NORTH);
		add(b1, BorderLayout.SOUTH);
			
		t1.setText("0");
		t2.setText("0");
		t3.setText("0");

		b1.addActionListener(this);
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == b1)
		{
			int a, b, c;
			a = Integer.parseInt(t1.getText());
			b = Integer.parseInt(t2.getText());
			c = a + b;
			str = String.valueOf(c);
			t3.setText(str);
		}
	}
}

GridLayout class

इस क्लास का प्रयोग करके कंपोनेंट्स को एक ग्रिड में व्यवस्थित किया जा सकता है। इस क्लास के कंस्ट्रक्टर्स की सहायता से पंक्तियों (rows) तथा स्तंभों (columns) की संख्या एवं कन्ट्रोल्स के बीच की दूरी भी सेट की जा सकती है।

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

/*<applet code="MyApplet.class" height=200 width=200>*/

public class MyApplet extends Applet implements ActionListener
{
	TextField t1, t2, t3;
	Button b1;
	String str;
	public void init()
	{
		GridLayout gl = new GridLayout(2, 2);
		setLayout(gl);

		t1 = new TextField(10);
		t2 = new TextField(10);
		t3 = new TextField(10);

		b1 = new Button("Calc");

		add(t1);
		add(t2);
		add(t3);
		add(b1);
			
		t1.setText("0");
		t2.setText("0");
		t3.setText("0");

		b1.addActionListener(this);
	}

	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == b1)
		{
			int a, b, c;
			a = Integer.parseInt(t1.getText());
			b = Integer.parseInt(t2.getText());
			c = a + b;
			str = String.valueOf(c);
			t3.setText(str);
		}
	}
}

GridBagLayout class

यह भी ळतपकस्ंलवनज क्लास की तरह ही होती है किंतु इसमें कंटेनर को आयत की कई rows तथा columns में विभाजित किया जाता है। इसमें rows तथा columns अलग-अलग आकार के हो सकते हैं।

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

/*<applet code="MyApplet.class" height=200 width=400>*/
public class MyApplet extends Applet implements ActionListener
{
	TextField t1, t2, t3;
	Button b1;
	String str;
	public void init()
	{
		GridBagLayout gbl = new GridBagLayout();
		setLayout(gbl);

		t1 = new TextField(10);
		t2 = new TextField(10);
		t3 = new TextField(10);

		b1 = new Button("Calc");

		add(t1);
		add(t2);
		add(t3);
		add(b1);
			
		t1.setText("0");
		t2.setText("0");
		t3.setText("0");

		b1.addActionListener(this);
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == b1)
		{
			int a, b, c;
			a = Integer.parseInt(t1.getText());
			b = Integer.parseInt(t2.getText());
			c = a + b;
			str = String.valueOf(c);
			t3.setText(str);
		}
	}
}

CardLayout class

यह भी अन्य सभी लेआउट से भिन्न है। इसमें एक समय में केवल एक ही कंपोनेंट प्रदर्शित होता है। इस क्लास में कुछ ऐसे मैथड होते हैं जो इन अलग-अलग कंपोनेंट्स को एक-एक करके प्रदर्शित कराने के लिए प्रयोग में लिए जाते हैं।

सुझाव / कमेंट