> / / Створюємо зображення і отримуємо його об'єкт Graphics2D.
/ / Малювати будемо тільки на ньому, а екран виводимо вже
/ / готовий малюнок (т.зв. подвійна буферезація).
bi=(BufferedImage) createImage (w, h);=bi.createGraphics ();. setRenderingHint (RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
/ / Створюємо потік, який буде періодично викликати метод update.
timer=new Thread (this);. start (); } (Exception error) {. Out.println (error.getMessage ());
ДОДАТОК 1 (продовження)
}
}
/ ** Цей метод виконує перерисовку вікна аплету * /
public void update (Graphics g) {
try {
/ / Отримуємо покажчик на об'єкт Graphics2D
Graphics2D g2=(Graphics2D) g; ();
/ / Малюємо готове зображення на екране.drawImage (bi, 0, 0, this);
big.setTransform (new AffineTransform ());
} (Exception error) {. out.println (error.getMessage ());
}
} void grawClock () {
/ / Дізнаємося поточний времяcurTime=Calendar.getInstance ();. setTimeInMillis (System.currentTimeMillis ()); hour=curTime.get (Calendar.HOUR_OF_DAY); min=curTime.get (Calendar.MINUTE ); sec=curTime.get (Calendar.SECOND);
/ / Очищаємо рісунок.setBackground (Color.WHITE);. clearRect (0, 0, w, h);
/ / Малюємо ціферблатluCorner=new Point (0, 0); (w> h)
ДОДАТОК 1 (продовження)
{
luCorner.x=(w - h) / 2;
luCorner.y=0;
}
{. x=0;. y=(h - w) / 2;
}. drawImage (dial.getClockDial (), null, luCorner.x, luCorner.y);
/ / Малюємо стрелкі.setColor (hoursColor); hat=new AffineTransform ();. translate (w / 2 - hNeedle.getRotationCenter (). x,
h / 2 - hNeedle.getRotationCenter (). y);
/ * Розраховуємо кут повороту часовий Стелк. Щогодини на
-ти годинному циферблаті відповідає 30-ти градусам, а 1
хвилина - 0.5 градуса. Потім результат переводимо в радіани. * / (Hour>=12) -=12; theta=(- 90 + (30 * hour + 0.5 * min)) * Math.PI/180;. Rotate (theta, hNeedle.getRotationCenter().x,.getRotationCenter().y);.setTransform(hat);.fill(hNeedle.getNeedle());.setColor(minutesColor);mat =New AffineTransform ();. Translate (w / 2 - mNeedle.getRotationCenter (). X, / 2 - mNeedle.getRotationCenter (). Y);
ДОДАТОК 1 (продовження)
/ * Розраховуємо кут повороту хвилинної Стелк. Кожна хвилина на
-ти годинному циферблаті відповідає 6-ти градусам, а 1
секунда - 0.1 градуса. Потім результат переводимо в радіани. * /=(- 90 + (6 * min + 0.1 * sec)) * Math.PI/180;. Rotate (theta, mNeedle.getRotationCenter().x,.getRotationCenter().y);.setTransform(mat);.fill(mNeedle.getNeedle());.setColor(secondsColor);sat =New AffineTransform ();. Translate (w / 2 - sNeedle.getRotati...