» Poradna » Programy

Jak kreslit v Javě na mouseClick?

 |   | 

Dobrý den,
mám zadání domácího úkolu abych rozlišil funkci levého a pravého tlačítka myši.
Na pravé to má nakreslit do okna Elipsu
Na levé to má kreslit Obdélník

Povedlo se mi rozlišit tlačítka a vytváří to nové objekty Elipsa/Kvádr, ale nevím jak je vykreslit na Container popř. na plátno Canavas.

Přikládám své zdrojové soubory. Pokud by jste mi mohli poradit pište na e-mail nebo na ICQ: 236-893-811 nebo na skype: koprkuba

Link: ulozto.cz ...

Díky moc.

Mohlo by vás také zajímat

Odpovědi na otázku

 | 

Trida Canvas ma metodu void paint(Graphics g);
Tuhle metodu musis prepsat a pomoci te promene "g" tam muzes kreslit.
Urcite budes potrebovat i nejake pole (nebo jinou datovou strukturu), kam si budes ukladat vsechny ty tvoje tridy elipsa a kvadr. A pak je v te metode paint budes cyklem vykreslovat.
O volani metody paint se starat nemusis ta by mela byt volana automaticky. A pokud ne, tak by tam mohla byt metoda repaint(), kterou by jsi to vykresleni mel zavolat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Super díky moc, pořád sem nevěděl jak to udělat aby to plátno taky poznalo co chci kreslit. Nakonec je to nějak takhle:
volám metodu paint na plátně s atributama (Graphics, Elipsa, Obdelnik):
PRO ELIPSU:
platno.paint(platno.getGraphics(), new Elipsa(x, y), null);
PRO OBDELNIK:
platno.paint(platno.getGraphics(), null, new Obdelnik(x, y));

a Třída plátno tu metodu vykoná:
public void paint(Graphics g, Elipsa e, Obdelnik o) {
if (e == null) {
g.drawRect(o.x, o.y, o.width, o.height);
} else {
g.drawOval(e.x, e.y, e.width, e.height);
}
}

je to sice nejspíš špatně co se týče objektovýho modelování, pže kdybych měl spoustu jinejch tvarů tak by těch atributý bylo mraky, ale teď to funguje tak to neřešim. Asi by to šlo ošetřit tak, že bych měl třídu Shape a ta by řikala metodě paint co má kreslit.

Ale každopádně ti strašně děkuji

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: KOPR, Kvádr, Plátno, Obdélník