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

Člen

Zobrazeno 10 zpráv z 10.
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.


V první řadě musíš v hlavní třídě inicializovat třídu druhou, abys
na ni mohl volat metody. A do druhé třídy napíšeš metodu, která bude
měnit proměnou int.
Můžeš se také inspirovat zdejším článkem http://www.itnetwork.cz/…nel-graphics
já to mam takhle v 1. třídě:
private int a = 8;
ve metodě s layoutem (pořád sem v první třídě):
Screen s = new Screen(a);
add(s);
A v té 2. třídě:
private int b;
public Screen(int b){
this.b = b;
}
public void paint(Graphics g){
g.drawRect(10, 10, b, b);
repaint();
}
Samozřejmě, že to není tak triviální, ale něco na tenhle způsob
(tohle sem si teď vymyslel
).
A taky mě napadlo, jestli bych do té druhé třídy neměl implementovat Runnable (vim jak se implementuje, jen se ptam, jestli je to potřeba).
Když tak nad tim přemejšlim, tak mě napadlo, že by ten Runnable měl být spíš v tý první třídě (hlavní třídě). Ale nejsem si jistej, tak se ptam.
Každopádně budu rád za jakoukoli pomoc. 
Já bych to udělal takto:
V 1. třídě:
NazevDruhe nazevDruhe = new NazevDruhe();
int a=6;
private void formMouseClicked(java.awt.event.MouseEvent evt) {
nazevDruhe.setVelikost(a);
a++;
JPanel.repaint();
}
2. třída
private int a;
public void setVelikost(int a){
this.a=a;
}
public void paint(Graphics g){
g.drawRect(10, 10, a, a);
}
proč děláš nějaký vlastní tlačítko s velikostí <i>a</i>, to já nepotřebuju, mě stačí pouhej JButton.
A zajmalo by mě, jak si ty tvoje třídy vymění informaci o té proměnné.
Trochu se divím, že se ti ta tvá metoda paint() nezacyklí, když uvnitř ní voláš metodu repaint(). Funguje to tak, ze kdyz volas metodu repaint(), tak ta vola metodu update() a ta vola metodu paint(). Jinak já bych to provedl obdobně jako kolega. Informaci o promenne si tridy predaji v obsluze udalosti - v tomto případě nazevDruhe.setVelikost. A pak by stacilo zavolat nazevDruhe.repaint(). V tvem pripade by se zavolalo s.repaint().
No něco jsem zkoušel, a dokonce se mi ani ta druhá třída nechce
zobrazit.
Tak jsem to vrátil.
Vysvětlim znova:
Mam jednu třídu, kde mam metodu, která mi vykresluje JButton a mam druhou
třídu, ve kterej mam metodu piant(Graphics g) , která mi vykresluje grafiku
podle jednoho intu, kterej je deklarovanej ve druhé třídě.
Tak a já potřebuju tim jednim JButtonem v té první třídě měnit tu
hodnotu intu v té druhé třídě, a aby se mi ta grafika hned znova vykreslila
(tzn. měnila se s počtem mačkání na ten JButton).
Snad je to dost podrobný vysvětlení.
Budu rád za návrh řešení.
Přesně na tohle jsem ti odpovídal, jen jsem to popsal podle svého.
Přikládám hotový příklad, na něm by to snad mělo být lépe
pochopitelné.
http://leteckaposta.cz/766653381
Zobrazeno 10 zpráv z 10.