Diskuze: Javu gui - prosím o pomoc
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Oprava,
podarilo sa mi to spojazdniť takým spôsobom, že sa mi dá kresliť na plochu aj pri metóde paintComponent. Nijakým spôsobom sa mi však nepodarilo docieliť toho aby som mal obrace vykreslené hneď ako sa okno spustí... predtým som volal kreslenie už v konštruktore pretože po otvorení okna už potrebujem mať pripravenú hraciu plochu, pri metóde paint to bežalo, pri painComponent akékoľvek kreslenie v konštruktore jednoducho nevykreslí, musím ho aktualizovať klikom alebo niečím na čo to kreslenie bude reagovať... Mohol by som to vyriešiť pridaním ešte jedného buttonu - "Začať hru" ale predsa len keď už som si vybral rozmery formu hry a všetko tak očakávam, že hra bude dostupná hneď po spustení... Ak by niekto vedel ako by sa to dalo vyrieši bol by som naozaj vďačný
Ahoj, bez kódu ti asi nikdo nepomůže. Můžeš sem hodit kód, kde sestavuješ okno, vytváříš gui a metodu paint?
Pridal som ich takto cez obrázky, nevedel som ako ináč nato, je tam toho kódu žiaľ veľmi veľa, metódu paintComponent mám prázdnu a kreslenie robím mimo, keď som to robil vnútri tak mi to nekreslilo vôbec, je tam aj obrázok okna... po sputení sa mi však nezobrazí tá mriežka musím kliknúť a až potom kreslí ak to mám v konštruktore nič sa nestane
zobrazilo vám tie súbory ?
Žádné soubory se nezobrazily, použij dole odkaz na vložení dlouhého zdrojového kódu.
http://www.itnetwork.cz/dev-lighter/576
http://www.itnetwork.cz/dev-lighter/577
pridal som to ako zdrojáky mám ich však niekde ako keby v profile, neviem či vám tieto linky otvorí, opsravedlňujem sa som tu nový tak neviem ako to funguje
Co jsem tak z kódu pochopil, tak se snažíš kreslit na JPanel platno. Vytvoř si nový objekt třeba mujPanel který bude dědit právě z JPanelu. V něm překryj metodu paint() svým vlastním kreslením (nezapomeň zavolat super.paint()). Nakonec přidej panel do formuláře. Když to teď spustíš, měl by jsi rovnou vidět kreslení.
A nebude mi to robiť ten problém čo na začiatku ? ja som to najskôr kreslil cez metódu paint() ale tá spôsobovala to, že prekreslila celú plochu a buttony na spodnej lište sa mi zobrazovali len ak som na ne nabehol myšou, preto som to začal riešiť cez paintComponent, ak to spravím takto tak to nebude v podsate o tom istom ? pretože vtedy som tiež videl kreslenie hneď ale buttony na spodnej lište sa mi akoby prekreslili a nebolo ich vidno
Problem to dělat nebude, sám jsem to vyzkoušel. Tady máš přesný návod jak na to:
1. Vytvoříš novou třídu MujPanel kde překryješ metodu paint svým kreslením:
public class MujPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawLine(50, 50, 100, 100);
}
}
2. V metodě StrednaObtiaznost() zakomentuješ vše, co se týká JPanel blatno a místo toho tam vytvoříš MujPanel:
public void StrednaObtiaznost(String title, int riadky, int stlpce) {
...
// Tento řádek zakomentuj
// JPanel platno = new JPanel(new BorderLayout());
// Místo něj vytvoříš instanci třídy MujPanel:
MujPanel mujPanel = new MujPanel();
// Nakonec pridáš mujPanel do JFramu:
this.add(mujPanel);
Tohle by mělo stačit na to, aby ti to vykreslilo čáru na plátno hned po zapnutí aplikace.
Ďakujem veľmi pekne všetko funguje ako má, veľmi si mi pomohol
Není vůbec zač. Ještě můžeš můj poslední příspěvek označit jako řešení pro ostatní.
Zobrazeno 12 zpráv z 12.