ом. Ми повинні отримати примірник такого класу і, використовуючи його методи, малювати. Отримати примірник контексту можна в методі paint: void paint (Graphics g);
цей метод успадковується з класу Component. Аргумент Graphics g створюється системою, а ми беремо його в готовому вигляді і використовуємо для малювання. При створенні елемента метод paint буде викликаний автоматично.
Почнемо вивчати роботу з графікою в Java з класу Graphics.
void paint (Graphics g)
{. drawLine (20, 20, 360, 20); oldColor=g.getColor (); newColor=new Color (0, 0, 255) ;. setColor (newColor) ;. drawLine ( 20, 30, 360, 30) ;. setColor (oldColor) ;. drawRect (20, 40, 340, 20);=new Color (0, 215, 255) ;. setColor (newColor) ;. fillRect (21, 41 , 339, 19) ;. setColor (oldColor) ;. drawRoundRect (20, 70, 340, 30, 20, 15) ;. drawOval (20, 110, 150, 60) ;. drawOval (200, 110, 60, 60 ) ;. drawArc (280, 110, 80, 60, 0, 180); [] arrayX={20, 100, 100, 250, 250, 20, 20, 50}; [] arrayY={180, 180, 200 , 200, 220, 200, 200, 190}; poly=new Polygon (arrayX, arrayY, 8) ;. drawPolygon (poly); aPoint=new Point (50, 190); (poly.contains (aPoint))
{. drawString ( Yes raquo ;, 50, 190);
}=new Color (0, 0, 255) ;. setColor (newColor); font=new Font ( Tahoma , Font. BOLD | Font.ITALIC, 40); oldFont=g.getFont () ;. setFont (font) ;. drawString ( SBP raquo ;, 270, 220) ;. setFont (oldFont) ;. setColor (oldColor) ;. drawLine (20, 220, 20, 350) ;. drawLine (20, 350, 360, 350) ;. drawString ( Y raquo ;, 25, 230) ;. drawString ( X raquo ;, 350, 346); [] xArray={20, 40, 60, 80, 100 , 120, 130, 140, 280, 332}; [] yArray={350,345, 340, 310, 290, 280, 275, 273, 271, 269}; nPoint=10; .setColor (newColor) ;. drawPolyline (xArray , yArray, nPoint) ;. setColor (oldColor) ;. drawString ( y=f (x) raquo ;, 180, 267);
Рис 1.1 Приклад роботи з графікою
Метод drawLine класу Graphics накреслить пряму лінію:
. drawLine (20, 30, 360, 30);
тут 20, 30 - це координати x, y початку лінії, 360, 30 - координати кінця лінії.
Метод setColor класу Graphics зробить поточним новий колір:
Запам'ятовуємо вихідний колір; oldColor=g.getColor ();
Створюємо синій колір; newColor=new Color (0, 0, 255);
Встановлюємо синій колір; .setColor (newColor);
Креслимо лінію синім кольором; .drawLine (20, 30, 360, 30);
Відновлюємо вихідний колір; .setColor (oldColor);
Аргументи конструктора new Color (0, 0, 255) - це червоний, зелений і синій кольори відповідно (rgb).
У прикладі заданий чисто синій колір, тому значення інших складових дорівнюють нулю. Ось чисто червоний колір: newColor=new Color (255, 0, 0);
А це чисто зелений колір: newColor=new Color (0, 255, 0);
Значення складових кольору змінюються від 0 до 255.
Світло-синій колір, який ми використовували для заливки прямокутника:=new Color (0, 215, 255);
Задати колір фону можна методом setBackground: .setBackground (Color.white);
Намалювати трикутник можна методом drawRect класу Graphics: .drawRect (20, 40, 340, 20);
, 40 - це координати верхнього лівого кута прямокутника;
- довжина; 20 - висота прямокутника.
Що б залити прямокутник кольором знадобиться методом fillRect класу Graphics:
=new Color (0, 215, 255) ;. setColor (newColor);
g.fillRect (21, 41, 339, 19) ;. setColor (oldColor);
Що б намалювати прямокутник із закругленими кутами потрібен метод drawRoundRect класу Graphics.
Сполучення, тобто закруглення на кутах, робиться за допомогою частин овалу.
g.drawRoundRect (20, 70, 340, 30, 20, 15);
перші 4 аргументу як у звичайного прямокутника. П'ятий аргумент - 20 - це ширина прямокутника, в який вписана частина овалу сполучення. Шостий аргумент - 15 - це висота прямокутника, в який вписана частина овалу сполучення.
Для того, щоб намалювати овал скористаємося методом drawOval класу Graphics:
. drawOval (20, 110, 150, 60);
Аргументи визначають прямокутник, в який вписано овал.
Щоб намалювати коло скористаємося тим же методом, що і для овалу.
Методом drawOval класу Graphics:
. drawOval (200, 110, 60, 60);