Diskuze: Panely...
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 9 zpráv z 9.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Potřeboval bych to tak že...Mám 2 nadesignované panely (Panel1.java a Panel2.java)a potom mám třídu (JFrame) main.V ní (main) mám 1 prázdný panel ve kterém bych chtěl vyměňovat Panel1.java a Panel2.java. na jradiobutton1 chci Panel1.java a na jradiobutton2 chci Panel2.java .
Doufám že jsem to napsal srozumitelně a pochopitelně.Raději ještě
posílám obrázek jak to mám 
Myslim, ze problem moze naozaj byt v pouzitych Layout manageroch.
JFrame ma defaultne BorderLayout, JPanel Flowlayout.
Ak teda do prazdneho JPanelu, kde si ponechal defaultny FlowLayout vlozis 2
dalsie panely, ulozia sa ti akoby vedla seba a este k tomu s nejakou systemom
urcenou velkostou.
CardLayout je urcite vhodny na to co potrebujes.
Alebo uplne zrus defaultny flowlayout (setLayout(null)) a manazuj vizibilitu a
umiestnenie panelov manualne.
Prikladam uryvok kodu.
public class PanelTest {
JFrame okno;
JPanel hlavnyPanel;
Panel1 p1;
Panel2 p2;
JRadioButton b1;
JRadioButton b2;
ButtonGroup bg;
public PanelTest(){
okno = new JFrame("Panel Test");
okno.setSize(400,500);
okno.setLocationRelativeTo(null);
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//okno.setLayout(null);
p1 = new Panel1();
p2 = new Panel2();
b1 = new JRadioButton("Panel 1");
b1.setBounds(100,420,70,30);
b1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent ae){
p1.setVisible(true);
p2.setVisible(false);
}
});
b2 = new JRadioButton("Panel 2");
b2.setBounds(200,420,70,30);
b2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent ae){
p2.setVisible(true);
p1.setVisible(false);
}
});
bg = new ButtonGroup();
bg.add(b1);
bg.add(b2);
nastavHlavnyPanel();
okno.add(hlavnyPanel);
okno.setVisible(true);
}
private void nastavHlavnyPanel(){
hlavnyPanel = new JPanel();
hlavnyPanel.setLayout(null);
hlavnyPanel.add(p1);
hlavnyPanel.add(p2);
hlavnyPanel.add(b1);
hlavnyPanel.add(b2);
}
Triedy Panel1 a Panel2 "extenduju" JPanel a mam v nich nastavene cez
setBounds() velkost a umiestnenie. POslem ti aj cely "program" ak chces 
A šlo by to nějak tak?:
public void actionmPerfomed(ActionEvent ae){
hlavnyPanel.removeAll();
hlavnyPanel.add(p1);
hlavnyPanel.revalidate();
hlavnyPanel.repaint();
}
Nejsem v tom nějaký odborník, ale pokud jsem to správně pochopil, máš
hlavní třídu Main a v ní by jsi chtěl mít panel, ze kterého by jsi měnil
oba dva panely (Panel1 a Panel2).
Já bych to udělal tak, že bych si vytvořil další třídu (HlavniPanel),
která dědí z JPanel. To by byl panel, který by měnil viditelnost u
zbývajících dvou panelů. Dal jsi do něj tyhle řádky:
public HlavniPanel() {
setBorder(new EmptyBorder(5, 5, 5, 5));
setLayout(null);
}
a pak přidal Panel1 a Panel2 a nastavil jim parametry:
Panel1 panel1 = new Panel1(); //Vytvoříš si instance tříd Panel1
Panel2 panel2 = new Panel2(); //a Panel2
panel1.setBounds(xsouradnice, ysourandice, delka, vyska); //Toto hodně používám,
panel2.setBounds(xsouradnice, ysourandice, delka, vyska); //protože si můžeš nastavit
//místo a velikost componentu
add(panel1); //Přidá Panel1
add(panel2); //a Panel2 do hlavního panelu
Délku a šířku si nastav podle toho, jak velký máš JFrame. Následně bych přidal tlačítkům ActionListener:
jradiobutton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panel1.setVisible(true); //panel1 se pomocí metody setVisible() zviditelní
panel2.setVisible(false); //a panel2 se zneviditelní
}
});
potom bych ActionListener přidal i druhému tlačítku, ale hodnoty v setVisible() musí být obrácené, jinak by se nic nezměnilo (a nezapomeň nastavit bounds i tlačítkům!).
A na konec zbývá to nejdůležitější. Do třídy Main musíš přidat hlavní panel. To uděláš stejně jako při přidávání Panel1 a Panel2 do HlavniPanel, jen mu už nemusíš nastavovat bounds.
Tak doufám, že jsem poradil 
Zapomněl jsem zmínit, že tlačítka musíš přidat dřív než panely, jinak by nebyly vidět, protože potom budou za panelama.
Zobrazeno 9 zpráv z 9.