Увод у ЈЛаиередПане
ЈЛаиередПане је Свинг компонента која нам омогућава додавање компоненти у други слој. Чест пример „различитог слоја“ је скочни ЈЛаиередПане. Када морамо показати неки дијалог, упозорење или информације, користимо скочни прозор. То се може постићи коришћењем ЈЛаиередПане.
Изјава:
public class JLayeredPane extends JComponent implements Accessible
Слојеви ЈЛаиередПане
Ево неколико слојева ЈЛаиередПане-а како је доле детаљно објашњено:
- ДЕФАУЛТ_ЛАИЕР: Ово је стандардни и доњи слој, где је уметнута већина компоненти.
- ПАЛЕТТЕ_ЛАИЕР: Овај слој ЈЛаиередПанеситс преко заданог слоја и користан је за плутајуће траке са алаткама и палету.
- МОДАЛ_ЛАИЕР: Овај слој ЈЛаиередПане користи се за дијалоге модела и приказује изнад слоја палете.
- ПОПУП_ЛАИЕР: Овај слој ЈЛаиередПанеис коришћен је за приказ искачућих прозора изнад модалног слоја.
- ДРАГ_ЛАИЕР: Компонента је приказана у овом слоју (изнад скочног слоја) док га повлачите. Када је повлачење завршено, компонента је приказана у свом оригиналном слоју.
Детаљи конструктора: Ово је једини конструктор који ствара ЈЛаиередПане.
public JLayeredPane()
Детаљи метода ЈЛаиередПане
Ево неких метода које користимо, доле су објашњене у ЈЛаиередПане:
1. заштићена воид аддИмпл (Цомпонент цомп, Објецт ограничења, инт индекс): Ова метода додаје компоненту у овај спремник у наведеном индексу. Такође, ЛаиоутМанагер је обавештен да додаје наведену компоненту у изглед овог контејнера користећи наведени објект ограничења. За ову методу аддЛаиоутЦомпонент користи се.
2. уклањање јавне празнине (инт индекс): Ова метода уклања компоненту из специфицираног индекса овог окна.
3. публиц воид ремовеАлл (): уклања све компоненте из овог окна.
4. јавни боолеан исОптимизедДравингЕнаблед (): Ако се слојеви у окну могу преклапати, то чини оптимизовано цртање немогућим и враћа лажно. Иначе тачно.
5. јавна статичка празнина путЛаиер (ЈЦомпонент ц, инт слој): Ова метода поставља слој за ЈЦомпонент. Ова метода не изазива никакве нуспојаве попут боје, додавања, уклањања итд. Да бисте имали ове нежељене ефекте, можете користити методу сетЛаиер ().
6. јавни статички инт гетЛаиер (ЈЦомпонент ц): Ова метода враћа атрибут слоја одређеног ЈЦомпонента.
7. јавна статичка ЈЛаиередПане гетЛаиередПанеАбове (Компонента ц): Ова метода враћа први ЈЛаиередПане који садржи наведену компоненту или враћа нулу ако није пронађен ЈЛаиередПане.
8. јавни воид сетЛаиер (компонента ц, инт слој): Ова метода поставља атрибут ЈЛаиередПане наведене компоненте. То чини компоненту најниже у наведеном слоју.
9. јавни воид сетЛаиер (Компонента ц, инт слој, инт позиција): Ова метода поставља атрибут слоја наведене компоненте и поставља положај компоненте у том слоју.
10. јавни инт гетЛаиер (Компонента ц): Ова метода враћа атрибут слоја наведене компоненте.
11. јавни инт гетИндекОф (Компонента ц): Ова метода враћа индекс наведене компоненте у окну игнорирајући слојеве. Највиша компонента је у индексу нула, а најнижа компонента у највишем индексу.
12. јавни воид мовеТоФронт (Компонента ц): Ова метода помиче наведену компоненту на врх у њеном тренутном слоју (позиција 0).
13. јавни воид мовеТоБацк (Компонента ц): Ова метода помиче наведену компоненту до дна у њеном тренутном слоју (позиција -1).
14. јавна воид сетПоситион (Компонента ц, инт положај): Ова метода поставља положај наведене компоненте унутар њеног слоја, при чему је 0 највиши положај, а -1 најнижи положај.
15. јавни инт гетПоситион (Компонента ц): Ова метода враћа релативни положај компоненте унутар њеног слоја.
16. публиц инт хигхЛаиер (): Ова метода враћа вредност највишег слоја од свих тренутних деце. Ако нема деце, враћа се 0.
17. јавни инт Најнижи слој (): Ова метода враћа вредност најнижег слоја од свих тренутних деца. Ако нема деце, враћа се 0.
18. јавни инт гетЦомпонентЦоунтИнЛаиер (инт слој): Ова метода враћа број деце тренутно присутне у наведеном слоју.
19. јавни Цомпонент () гетЦомпонентсИнЛаиер (инт слој): Ова метода враћа компоненте у низу наведеном у специфицираном слоју.
20. јавна празнина боја (графика г): Ова метода слика овај ЈЛаиередПане унутар одређеног графичког контекста.
21. заштићени Хасхтабле гетЦомпонентТоЛаиер (): Ова метода враћа ХасхТабле који компоненте саставља у слојеве.
22. заштићени Интегер гетОбјецтФорЛаиер (инт слој): Ова метода враћа цео број повезан са наведеним слојем.
23. Заштићени инт инсертИндекФорЛаиер (инт слој, инт положај): Ова метода одређује и враћа одговарајућу локацију за уметање новог детета на основу наведеног слоја и положаја.
24. заштићени стринг стринг парамСтринг (): Ова метода враћа стринг структуру овог окна. Ова метода се користи интерно за уклањање погрешака.
25. јавни АццессиблеЦонтект гетАццессиблеЦонтект (): Ова метода враћа АццессиблеЦонтект повезан са овим окном.
Пример ЈЛаиередПане-а
Ево примера ЈЛаиередПане-а дат доле с објашњењем:
Шифра:
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
public class JLayeredPaneDemo (
public static void main(String() args) (
JFrame frame = new JFrame("JLayeredPane Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(520, 530);
JLayeredPane jLayeredPane = new JLayeredPane();
JButton jButton1 = new JButton("Open");
jButton1.setBackground(Color.green);
jButton1.setBounds(175, 50, 150, 100);
jLayeredPane.add(jButton1, JLayeredPane.DEFAULT_LAYER);
JButton jButton2 = new JButton("Open");
JButton jButton3 = new JButton("Close");
jButton2.setVisible(false);
jButton3.setVisible(false);
jButton2.setBackground(Color.RED);
jButton3.setBackground(Color.RED);
jButton2.setBounds(75, 125, 150, 100);
jButton3.setBounds(275, 125, 150, 100);
jLayeredPane.add(jButton2, JLayeredPane.PALETTE_LAYER);
jLayeredPane.add(jButton3, JLayeredPane.PALETTE_LAYER);
JButton jButton4 = new JButton("Open");
JButton jButton5 = new JButton("Close");
jButton4.setVisible(false);
jButton5.setVisible(false);
jButton4.setBackground(Color.MAGENTA);
jButton5.setBackground(Color.MAGENTA);
jButton4.setBounds(95, 200, 150, 100);
jButton5.setBounds(255, 200, 150, 100);
jLayeredPane.add(jButton4, JLayeredPane.MODAL_LAYER);
jLayeredPane.add(jButton5, JLayeredPane.MODAL_LAYER);
JButton jButton6 = new JButton("Open");
JButton jButton7 = new JButton("Close");
jButton6.setVisible(false);
jButton7.setVisible(false);
jButton6.setBackground(Color.CYAN);
jButton7.setBackground(Color.CYAN);
jButton6.setBounds(75, 275, 150, 100);
jButton7.setBounds(275, 275, 150, 100);
jLayeredPane.add(jButton6, JLayeredPane.POPUP_LAYER);
jLayeredPane.add(jButton7, JLayeredPane.POPUP_LAYER);
JButton jButton8 = new JButton("Close");
jButton8.setVisible(false);
jButton8.setBackground(Color.GRAY);
jButton8.setBounds(175, 350, 150, 100);
jLayeredPane.add(jButton8, JLayeredPane.DRAG_LAYER);
frame.add(jLayeredPane);
frame.setVisible(true);
jButton1.addActionListener(e -> (
jButton2.setVisible(true);
jButton3.setVisible(true);
));
jButton2.addActionListener(e -> (
jButton4.setVisible(true);
jButton5.setVisible(true);
));
jButton3.addActionListener(e -> (
jButton2.setVisible(false);
jButton3.setVisible(false);
));
jButton4.addActionListener(e -> (
jButton6.setVisible(true);
jButton7.setVisible(true);
));
jButton5.addActionListener(e -> (
jButton4.setVisible(false);
jButton5.setVisible(false);
));
jButton6.addActionListener(e -> (
jButton8.setVisible(true);
));
jButton7.addActionListener(e -> (
jButton6.setVisible(false);
jButton7.setVisible(false);
));
jButton8.addActionListener(e -> (
jButton8.setVisible(false);
));
)
)
Објашњење
У овом примјеру имплементирали смо програм који приказује различите слојеве ЈЛаиередПане и како уметнути / уклонити компоненте из окна.
- Прво смо направили оквир и додали му ЈЛаиередПане.
- Затим су додани тастери у различитим слојевима ЈЛаиередПане-а.
- Приложени слушаоци радњи додају тастере да прикажу или сакрију следећи слој.
- Позиција тастера са слојем је постављена тако да изгледа правилно.
Излаз:
1. Ово је наша апликација и ово зелено дугме је додато у доњи слој.
2. Када корисник кликне на зелено дугме из првог слоја, отвара се други слој.
3. Када се кликне на дугме за отварање у другом слоју, отвориће се трећи слој у ЈЛаиередПане.
4. Када се кликне на дугме за отварање у трећем слоју, четврти слој се отвара.
5. Када се кликне на дугме отворено у четвртом слоју, отвара се пети слој.
6. Када се кликне на дугме за затварање у петом слоју, слој ЈЛаиередПане се затвара.
7. Када се кликне на дугме за затварање у четвртом слоју, слој ЈЛаиередПане се затвара.
8. Када се кликне на дугме за затварање у трећем слоју, слој ЈЛаиередПане се затвара.
9. Када се у другом слоју кликне дугме за затварање, тај слој се затвара.
Закључак
ЈЛаиередПане је једноставан за употребу и важна је компонента у Свинг-у. Омогућује лако одлучивање међу компонентама и преклапање ситуација.
Препоручени чланци
Ово је водич за ЈЛаиередПане. Овде смо расправљали о слојевима, конструктору и методама ЈЛаиередПане заједно са примером и његовом имплементацијом кода. Такође можете погледати следеће чланке да бисте сазнали више -
- ЈФраме у Јави
- ЈЦомпонент у Јави
- ЈЦхецкБок на Јави
- Шта је ЈВМ?
- Примери цхецкбок-а у Боотстрап-у