Увод у ГридЛаиоут на Јави
Менаџери распореда користе се у графичком програмирању за аранжирање компоненти на одређени начин. Користе се за одређивање величине и положаја компоненте у контејнеру. Доступне су различите врсте менаџера изгледа. ГридЛаиоут је један од њих. ГридЛаиоут у Јави дели контејнер у мрежу ћелија које се називају редови и ступци. Уређује компоненте у правоугаону мрежу. Свака ћелија може да прими само једну компоненту, једнаке величине и једнаке једна другој.
Пример: 3 реда и 4 колоне
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
Уобичајени кораци-решетка на Јави
- Подешавање спремника помоћу конструктора ЈФраме:
ЈФраме фраме = нови ЈФраме (); - Подешавање управитеља изгледа панела помоћу ЈПанел конструктора:
ЈПанел панел = нови ЈПанел (); - Додавање компоненти у контејнер:
панел.адд (дугме); фраме.адд (панел); - Постављање оријентације компоненте:
панел.сетЦомпонентОриентатион (ЦомпонентОриентатион.ЛЕФТ_ТО_РИГХТ);
Подразумевана вредност својства ЦомпонентОриентатион је да је оријентација компонената хоризонтална и лево-десно.
Врсте конструктора са примером
Испод су врсте конструктора са примерима и кодом.
1. ГридЛаиоут ()
Празан конструктор са једним ступцем по компоненти у једном реду.
Код
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);
)
)
Излаз:
2. ГридЛаиоут (инт редови, инт ступци)
Конструктор са одређеним бројем редова и ступаца.
Параметри:
редови - број редова (вредност нула значи било који број редова).
ступци - број ступаца (вредност нула значи било који број ступаца).
Код
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);
)
)
Излаз:
3. ГридЛаиоут (инт редови, инт ступци, инт хоризонтални јаз, инт вертикални јаз).
Конструктор с одређеним бројем редова и ступаца, хоризонталним и вертикалним празнинама између редова и ступаца.
Параметри:
редови - број редова (вредност нула значи било који број редова).
ступци - број ступаца (вредност нула значи било који број ступаца).
хоризонтални размак - између сваког ступа
вертикални размак - између сваког реда
Баци:
ИллегалАргументЕкцептион- ако је вредност оба реда и ступаца постављена на нулу.
Код
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);
)
)
Излаз:
Пример са имплементацијом
Случај: У доњем програму, кад год се ефекат преласка мишем деси преко ћелије мреже, његова боја се мења из црне у белу.
Код
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();
)
)
Излаз:
Закључак
Гридлаиоут на Јави је користан када желите да решетке направите у контејнеру заједно са једним условом, тј. Да је свака ћелија решетке једнаке величине и једнако распоређена.
Постоје и друге доступне методе као што је горе наведено:
1. гетРовс () - Добијте број редова.
2. сетРовс (инт и) - Подесите број редова на наведену вредност.
3. гетЦолумн () - Набавите број ступаца.
4. сетЦолумн (инт и) - Подесите број ступаца на наведену вредност.
5. гетХгап () - Поставља хоризонтални размак између компонената.
6. сетХгап (инт и) - Подесите хоризонтални размак између компонената на наведену вредност.
7.гетВгап () - Поставља вертикални јаз између компонената.
8. сетВгап (инт и) - Подесите вертикални размак између компонената на наведену вредност.
9. аддЛаиоутЦомпонент (име низа, Цомпонент цомп) - Додаје наведену компоненту са наведеним именом у изглед.
10. ремовеЛаиоутЦомпонент (Цомпонент цомп) - уклања наведену компоненту из изгледа контејнера.
11. преференцеЛаиоутСизе (надређени садржај контејнера) - Одређује жељену величину спремника.
12. минималЛаиоутСизе (родитељ контејнера) - Одређује минималну величину спремника.
13. лаиоутЦонтаинер (надређени контејнер) - поставља задати контејнер.
14. тоСтринг () - Враћа стринг представу вредности распореда решетке.
Препоручени чланци
Ово је водич за Гридлаиоут на Јави. Овде смо разговарали о типовима конструктора са примерима, кодовима са имплементацијом. Можете и да прођете кроз наше друге сродне чланке да бисте сазнали више -
- Спајање сортирања у Јави
- Изглед у Јави
- Најбољи Јава компајлери
- Деструктор на Јави
- ХТМЛ Лаиоут