Na kreslenie v Jave existuje v pricípe dva spôsoby ako získať inštanciu triedy Graphics pomocou ktorej môžeme kresliť.
1. Každý komponent má metódu getGraphics, ktorá vráti grafiku daného komponentu. Na konci nášho kreslenia, by sme mali zavolať metódu Graphics.dispose() . Táto konštrukcia sa využíva keď chceme niečo nakresliť v reakcii na dáku udalosť. Pokiaľ sa však komponent následne prekreslí napríklad zdôvodu skrolovania alebo zmeny veľkosti, tieto zmeny sa stratia. Príklad, ktorý sme robili, nám umožňuje jednoduché kreslenie:
package sk.gjh.kreslenie; |
2. Druhý spôsob kreslenia spočíva v preťažení metódy paint( Graphics g ) ktorá je definovaná pre Component. Vhodným kandidátom pre tento komponent by bol java.awt.Canvas, ten však odporúčam používať len pre AWT aplikácie. Pre Swingové aplikácie je vhodnejšie použiť napríklad JPanel, ktorý už má implementované metódy na správu veľkosti a podobne, takisto si vie sám nakresliť pozadie.
Vlastnému panelu pridáme inštančné premenné, ktoré budú charakterizovať jeho stav, v metóde paint potom tento stav zobrazíme. Náš komplexný príklad bude kresliť grafy funkcií, pre začiatok by mohli stačiť kvadratické funkcie.
Komentáre
JAVA