Inleiding tot BorderLayout in Java

BorderLayout in Java of de lay-outmanager is een object dat elk containerobject heeft, dat de lay-out bepaalt, dwz de grootte en positie van de componenten. In layman taal, worden deze Layout Managers gebruikt om de componenten op een bepaalde of specifieke manier te rangschikken. 'LayoutManager' kan worden gezegd als een interface die door alle klassen wordt geïmplementeerd. Er zijn enkele AWT- en SWING-klassen die als lay-outbeheerders voor algemeen gebruik zijn verstrekt. Sommigen van hen zijn hieronder opgesomd:

  1. BorderLayout
  2. BoxLayout
  3. SpringLayout
  4. FlowLayout
  5. GroupLayout
  6. GridLayout, enz

Laten we, voordat we naar BorderLayout gaan, enkele punten bespreken.

Bijna alles in de computerwereld is hiërarchisch georganiseerd, hetzij voor betere opslag of voor het creëren van een eenvoudig ophaalsysteem. Layout Managers die worden gebruikt voor het maken van GUI's met behulp van beschikbare AWT-klassen maken deel uit van een dergelijk hiërarchisch systeem. Het gaat onder de naam Containment Hierarchy. Hoewel de focus van dit artikel zal liggen op een van de beschikbare LayoutManager die bekend staat als BorderLayout, moeten we daarvoor weten waar BorderLayout in deze hiërarchie staat. Onze boomstructuur die door frames, GUI-componenten, containers, etc. loopt, begint met:

  1. Allereerst een container op het hoogste niveau of container op het hoogste niveau zoals JFrame, JApplet of JDialog, die fungeert als de 'ROOT' van deze insluitingshiërarchie.
  2. Ten tweede moet een component worden weergegeven als een GUI-component op het scherm, als deze is opgenomen in de insluitingshiërarchie.
  3. Ten derde hoeft één component slechts in één container te worden opgenomen.
  4. Ten vierde zal elke container op het hoogste niveau een inhoudsvenster hebben, los gezegd, elke zichtbare GUI (direct of indirect) is opgenomen in dit inhoudsvenster.

Wat is BorderLayout?

Een klasse BorderLayout is een van de lay-outbeheerklassen die wordt beschouwd als de standaardlay-out voor vensterobjecten. De vensterobjecten zoals JFrame, JWindow en JDialog gebruiken deze klasse om als GUI-componenten te worden weergegeven. BorderLayout wordt gebruikt om een ​​container op te maken, dwz de componenten te rangschikken en te vergroten of verkleinen. De randindeling rangschikt deze componenten in vijf verschillende regio's. Van de vijf worden vier regio's of gebieden aangeduid als noord, zuid, oost en west en wordt de middelste regio het centrum genoemd. Elke regio kan slechts één component bevatten. De randindeling biedt een verzameling constanten die worden gebruikt voor het positioneren van componenten. De hier besproken regio's worden geïdentificeerd door een overeenkomstige constante met de naam NOORD, ZUID, OOST, WEST, en de constante voor de middelste regio als MIDDEN. We gebruiken deze constanten bij het toevoegen van een component met behulp van een randopmaak. Constanten voor elke regio die in onze code wordt gebruikt, worden hieronder vermeld:

  • public static final int NORTH: de lay-outconstante van het noorden boven aan de container.
  • public static final int SOUTH: de lay-outconstante voor het zuiden onder aan de container.
  • public static final int CENTER: de Center-layoutconstante in het midden van de container.
  • public static final int WEST: De lay-outconstante van het westen rechts van de container.
  • public static final int EAST: de oost-layoutconstante links van de container.

Naast de hierboven genoemde constanten biedt BorderLayout ook andere positioneringsconstanten zoals PAGE_START, PAGE_END, enz.

BorderLayout-constructeurs

BorderLayout Constructors worden gebruikt om nieuwe randlay-outs te maken met openingen of zonder openingen tussen de componenten. De constructeur van de randopmaak gebruikt gap en gap-parameters om horizontale en verticale gaten tussen de componenten op te geven. De constructeurs van de randopmaak worden hieronder besproken:

We zullen ze een voor een bespreken, samen met hun voorbeelden.

1. BorderLayout ()

BorderLayout Class wordt gebruikt om een ​​randlay-out te maken, maar zonder openingen tussen de componenten. Hierna volgt een voorbeeldcode met de constructor BorderLayout (). Het volgende programma maakt componenten in een JFrame waarvan de instantieklasse 'border' is. U kunt in de onderstaande schermafbeelding (na de code) zien dat er vijf regio's zijn.

Onze code heeft vijf regio's gemaakt met behulp van vijf JButton en vervolgens worden deze aan de lay-out of JFrame toegevoegd met behulp van een add () -methode. De grootte en zichtbaarheid worden afzonderlijk bepaald voor het JFrame. de methode setSize () wordt gebruikt om de grootte voor het frame in te stellen en de methode zichtbaarheid () wordt gebruikt om de zichtbaarheid van het frame in te stellen.

Code

//Java Program illustrating the BorderLayout
import java.awt.*;
import javax.swing.*;
public class border
(
JFrame JF;
border()
(
JF=new JFrame(); //JFrame object
//Lying at top, will be the button named 'North'
JButton b1=new JButton("NORTH");
//Lying at bottom, will be the button named 'South'
JButton b2=new JButton("SOUTH");
//Lying at left, will be the button named 'East'
JButton b3=new JButton("EAST");
//Lying at right, will be the button named 'West'
JButton b4=new JButton("WEST");
//In the center, will be the button named 'Center'
JButton b5=new JButton("CENTER");
//Adding our buttons
JF.add(b1, BorderLayout.NORTH);
JF.add(b2, BorderLayout.SOUTH);
JF.add(b3, BorderLayout.EAST);
JF.add(b4, BorderLayout.WEST);
JF.add(b5, BorderLayout.CENTER);
//Function to set size of the Frame
JF.setSize(300, 300);
//Function to set visible status of the frame
JF.setVisible(true);
)
//Driver Code
public static void main(String() args)
(
//Calling the constructor
new border();
)
)

In de onderstaande schermafbeelding ziet u hoe de code eruit ziet in de teksteditor. Ik heb Eclipse gebruikt als mijn teksteditor.

Wanneer de code wordt uitgevoerd, wordt de volgende uitvoer weergegeven.

Output:

2. BorderLayout (int hgap, int vgap)

BorderLayout (int hgap, int vgap) wordt ook geschreven als BorderLayout (int, int) wordt gebruikt om een ​​randlay-out te maken met de gegeven horizontale (hgap) en verticale (vgap) openingen of spaties tussen de volgende is een voorbeeldcode met BorderLayout ( int, int) constructor. Het volgende programma maakt componenten in een JFrame waarvan de instantieklasse 'border' is op dezelfde manier als hierboven, maar met verticale en horizontale gaten. Je kunt het in de onderstaande screenshot zien (na de code).

Onze code heeft vijf regio's gemaakt met openingen ertussen met behulp van de parameters vgap en hgap in BorderLayout (). De grootte en zichtbaarheid worden opnieuw afzonderlijk bepaald voor het JFrame. De methode setSize () wordt gebruikt om de grootte voor het frame in te stellen en de methode zichtbaarheid () wordt gebruikt om de zichtbaarheid van het frame in te stellen.

U kunt de code zien voor het genereren van een frame met BorderLayout met vgap- en hgap-parameters, het maken van openingen of spaties tussen de regio's wordt hieronder weergegeven:

Code

//Java Program illustrating the BorderLayout with SPACES between COMPONENTS
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Color;
public class borderlayout_spaces extends Frame
(
public borderlayout_spaces(String title)
(
super(title);
setLayout(new BorderLayout(20, 30));
//setBackground(Color.RED);
//Lying at top, will be the button named 'North'
JButton b1=new JButton("North");
add(b1, BorderLayout.NORTH);
//Lying at left, will be the button named 'East'
JButton b2=new JButton("EAST");
add(b2, BorderLayout.EAST);
//In the center, will be the button named 'Center'
JButton b3=new JButton("CENTER");
add(b3, BorderLayout.CENTER);
//Lying at right, will be the button named 'West'
JButton b4=new JButton("WEST");
add(b4, BorderLayout.WEST);
//Lying at bottom, will be the button named 'South'
JButton b5=new JButton("SOUTH");
add(b5, BorderLayout.SOUTH);
)
//Driver Code
public static void main(String() args)
(
//Calling the constructor
borderlayout_spaces screen =
new borderlayout_spaces("Border Layout");
screen.setSize(300, 300); //Function to set size of the Frame
screen.setVisible(true); //Function to set visible status of
the frame
)
)

In de onderstaande schermafbeelding ziet u hoe de code eruit ziet in de teksteditor.

De coderegel, "setLayout (new BorderLayout (20, 30));" geeft de uitvoer aan zoals in onderstaande afbeelding. Hier is 20 de horizontale ruimte en 30 vertegenwoordigt de verticale ruimte.

Wanneer de code wordt uitgevoerd, wordt de volgende uitvoer weergegeven.

Output:

U kunt ook andere eigenschappen proberen, bijvoorbeeld de achtergrondkleur instellen. Als u in de bovenstaande code een coderegel met commentaar ziet als "setBackground (Color.RED);" als u deze code zonder deze regel probeert, ziet uw kader er als volgt uit:

Naast de lay-out van de randen zijn er nog andere veelgebruikte methoden, zoals:

  1. toString (): Retourneert een tekenreeks die een weergave is van de status van de randindeling.
  2. getVgap (): Retourneer de verticale opening tussen de component.
  3. getHgap (): Retourneer de horizontale opening tussen de component.
  4. setVgap (int vgap): dit wordt gebruikt om de verticale opening tussen de component in te stellen.
  5. setHgap (int hgap): dit wordt gebruikt om de horizontale opening tussen de componenten, enz. in te stellen.

Dit artikel besprak enkele krachtige LayoutManagers die worden gebruikt om uw Windows-frames en GUI's op te maken. Het artikel had ook betrekking op het schrijven van codelay-outs met behulp van twee verschillende constructors, bekend als java.awt.BorderLayout class en java.awt.BorderLayout (int, int) class met de hand, wat een uitdaging zou kunnen zijn. Maar je moet het proberen te proberen. Als dit niet het geval is, kunt u proberen lay-outmanager java.awt.GroupLayout te gebruiken. U kunt ook een bouwgereedschap gebruiken samen met uw lay-outmanager, bijvoorbeeld NetBeans IDE, wat een geweldig hulpmiddel is om uw GUI te maken.

Aanbevolen artikelen

Dit is een gids voor BorderLayout in Java. Hier bespreken we een inleiding tot BorderLayout in Java, BorderLayout Constructors met codes en uitgangen. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie-

  1. Indeling in Java
  2. Rasterlay-out in Java
  3. Variabelen in Java
  4. Kopieer Constructor In Java
  5. HTML-indeling