Gridlayout i Java - Typer konstruktører - Eksempel med implementering

Innholdsfortegnelse:

Anonim

Introduksjon til GridLayout i Java

Layoutledere brukes i grafisk programmering for å arrangere komponenter på en spesifikk måte. De brukes til å bestemme størrelsen og plasseringen til en komponent i en beholder. Det er forskjellige typer layoutadministratorer tilgjengelig. GridLayout er en av dem. GridLayout i Java deler beholderen inn i et rutenett av celler som kalles rader og kolonner. Den ordner komponentene i et rektangulært rutenett. Hver celle har plass til bare en komponent, like stor og med hverandre.

Eksempel: 3 rader og 4 kolonner

1234
5678
9101112

Vanlige trinn-gridlayout i Java

  1. Innstilling av beholderen ved bruk av JFrame-konstruktør:
    JFrame frame = new JFrame ();
  2. Stille inn panelets layout manager ved hjelp av JPanel konstruktør:
    JPanel-panel = nytt JPanel ();
  3. Legge komponenter i beholderen:
    panel.add (knapp); frame.add (panel);
  4. Innstilling av komponentorientering:
    panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
    Standardverdien for egenskapen ComponentOrientation er at orienteringen til komponentene er horisontal og fra venstre til høyre.

Typer konstruktører med eksempel

Nedenfor er typene konstruktører med eksempler og kode.

1. GridLayout ()

Tom konstruktør med en kolonne per komponent i en enkelt rad.

Kode

import java.awt.*;
import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout());JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)

Produksjon:

2. GridLayout (int rader, int kolonner)

Konstruktør med et spesifisert antall rader og kolonner.
parametere:
rader - antall rader (verdi null som betyr et hvilket som helst antall rader).
kolonner - antall kolonner (verdi null som betyr et hvilket som helst antall kolonner).

Kode

import java.awt.*;
import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2, 2));
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)

Produksjon:

3. GridLayout (int rader, int kolonner, int horisontalt gap, int vertikalt gap).

Konstruktør med et spesifisert antall rader og kolonner, horisontale og vertikale mellomrom mellom rader og kolonner.
parametere:
rader - antall rader (verdi null som betyr et hvilket som helst antall rader).
kolonner - antall kolonner (verdi null som betyr et hvilket som helst antall kolonner).
horisontalt avstand mellom hver av kolonnene
loddrett gap mellom hver av radene
kaster:
IllegalArgumentException - hvis verdien for både rader og kolonner er satt til null.

Kode

import java.awt.*;import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2, 2, 5, 10));
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)

Produksjon:

Eksempel med implementering

Tilfelle: I programmet nedenfor, når fargen over musen skjer over cellen til et rutenett, endres fargen fra svart til hvit.

Kode

import java.awt.*;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class gridLayout extends JPanel(
public gridLayout() (
super(new GridLayout(3, 3));
JLabel label1, label2, label3, label4, label5, label6, label7, label8, label9;
//create the lables
label1 = new JLabel();
label2 = new JLabel();
label3 = new JLabel();
label4 = new JLabel();
label5 = new JLabel();
label6 = new JLabel();
label7 = new JLabel();
label8 = new JLabel();
label9 = new JLabel();
//set the background color for each label
label1.setBackground(Color.BLACK);
label1.setOpaque(true);
label2.setBackground(Color.BLACK);
label2.setOpaque(true);
label3.setBackground(Color.BLACK);
label3.setOpaque(true);
label4.setBackground(Color.BLACK);
label4.setOpaque(true);
label5.setBackground(Color.BLACK);
label5.setOpaque(true);
label6.setBackground(Color.BLACK);
label6.setOpaque(true);
label7.setBackground(Color.BLACK);
label7.setOpaque(true);
label8.setBackground(Color.BLACK);
label8.setOpaque(true);
label9.setBackground(Color.BLACK);
label9.setOpaque(true);
//add mouse listeners for each label
label1.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label1.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label1.setBackground(Color.BLACK);
)
));
label2.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label2.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label2.setBackground(Color.BLACK);
)
));
label3.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label3.setBackground(Color.WHITE);)
public void mouseExited(MouseEvent me) (
label3.setBackground(Color.BLACK);
)
));
label4.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label4.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label4.setBackground(Color.BLACK);)
));
label5.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label5.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label5.setBackground(Color.BLACK);
)));
label6.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label6.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label6.setBackground(Color.BLACK);
)
));
label7.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label7.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label7.setBackground(Color.BLACK);
)
));
label8.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label8.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label8.setBackground(Color.BLACK);
)
));label9.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label9.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label9.setBackground(Color.BLACK);
)
));
//add the labels
add(label1);
add(label2);
add(label3);
add(label4);
add(label5);
add(label6);
add(label7);
add(label8);
add(label9);
)
private static void createAndShowGUI() (
//create and setup the container
JFrame frame = new JFrame("Gridlayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
//add content to the container
frame.add(new gridLayout());
//display the container
frame.pack();
frame.setVisible(true);
)public static void main(String() args) (
createAndShowGUI();
)
)

Produksjon:

Konklusjon

Gridlayout i Java er nyttig når du vil lage rutenett i en beholder sammen med en tilstand, dvs. at hver av cellene i rutenettet er av samme størrelse og har like stor avstand.
Det er andre tilgjengelige metoder også som nevnt nedenfor:
1. getRows () - Få antall rader.
2. setRows (int i) - Angi antall rader til den angitte verdien.
3. getColumns () - Få antall kolonner.
4. setColumns (int i) - Angi antall kolonner til den angitte verdien.
5. getHgap () - Får den horisontale gapet mellom komponentene.
6. setHgap (int i) - Still det horisontale avstandet mellom komponentene til den spesifiserte verdien.
7.getVgap () - Få den vertikale gapet mellom komponentene.
8. setVgap (int i) - Still det vertikale gapet mellom komponentene til den spesifiserte verdien.
9. addLayoutComponent (String name, Component comp) - Legger den angitte komponenten med det spesifiserte navnet til oppsettet.
10. removeLayoutComponent (Component comp) - fjerner den spesifiserte komponenten fra containeroppsettet.
11. foretrukketLayoutSize (Container parent) - Bestemmer den foretrukne størrelsen på beholderen.
12. minimumLayoutSize (Container parent) - Bestemmer minimumsstørrelse på beholderen.
13. layoutContainer (Container parent) - Legger ut den angitte beholderen.

14. toString () - Returnerer strengrepresentasjonen for rutenettoppsettverdier.

Anbefalte artikler

Dette er en guide til Gridlayout i Java. Her har vi diskutert typene konstruktører med eksempler, koder med implementering. Du kan også gå gjennom andre relaterte artikler for å lære mer-

  1. Merge Sort i Java
  2. Oppsett i Java
  3. Beste Java-kompilatorer
  4. Destructor i Java
  5. HTML-oppsett