|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Java 2D™ API мощен и сложен. Однако, огромное большинство использования для Java 2-D API использует маленькое подмножество своих возможностей, инкапсулировавших в java.awt.Graphics class. Этот урок удовлетворяет наиболее распространенные потребности разработчиков приложений. Менее общие потребности описываются позже в Усовершенствованных темах в Java 2-D API.
Большинство методов Graphics class может быть разделен на две основных группы:
Методы такой как setFont и setColor определите, как тянут и заполняются, методы представляют.
Это число иллюстрирует, как эти методы касаются графических объектов:

Тянущие методы включают:
drawString – Для рисования текста
g.drawString("Hello", 10, 10);
drawImage – Для рисования изображений
g.drawImage(img,
0, 0, width, height,
0, 0, imageWidth, imageHeight,
null);
drawLine, drawArc, drawRect, drawOval, drawPolygon – Для рисования геометрических форм g2.draw(new Line2D.Double(0, 0, 30, 40));
В зависимости от Вашей текущей потребности можно выбрать один из нескольких методов в Graphics class, основанный на следующих критериях:
Методы заливки применяются к геометрическим формам и включают fillArc, fillRect, fillOval, fillPolygon.
Чертите ли Вы линию текста или изображения, помните, что в 2-D графике каждая точка определяется ее x и
Например, чтобы чертить линию, приложение вызывает следующее:
java.awt.Graphics.drawLine(int x1, int y1, int x2, int y2)
В этом коде (x1, y1) стартовая точка строки, и (x2, y2) конечная точка строки.
Таким образом, код, чтобы провести горизонтальную линию следующие:
Graphics.drawLine(20, 100, 120, 100);
Демонстрационный пример ниже накапливает все упомянутые методы. Переместите ползунок, чтобы вывести на экран различные погодные типы.
Если Вы не видите, что апплет работает, Вы должны установить .
WeatherWizard демонстрационный пример использует JSlider компонент так же как различные графические возможности генерировать и вывести на экран указанный погодный тип. Для получения дополнительной информации о JSlider class видит
paint метод WeatherPainter class реализует графические опции. Следующий код тянет изображение, определенное при использовании setupWeatherReport() метод.
...
origComposite = g2.getComposite();
if (alpha0 != null) g2.setComposite(alpha0);
g2.drawImage(img0,
0, 0, size.width, size.height,
0, 0, img0.getWidth(null),
img0.getHeight(null), null);
if (img1 != null) {
if (alpha1 != null) g2.setComposite(alpha1);
g2.drawImage(img1,
0, 0, size.width, size.height,
0, 0, img1.getWidth(null),
img1.getHeight(null), null);
}
...
setFont и drawString методы представляют температуру и погодное условие.
...
// Freezing, Cold, Cool, Warm, Hot,
// Blue, Green, Yellow, Orange, Red
Font font = new Font("Serif", Font.PLAIN, 36);
g.setFont(font);
String tempString = feels + " " + temperature+"F";
FontRenderContext frc =
((Graphics2D)g).getFontRenderContext();
...
g.setColor(textColor);
int xTextTemp = rX-(int)boundsTemp.getX();
int yTextTemp = rY-(int)boundsTemp.getY();
g.drawString(tempString, xTextTemp, yTextTemp);
int xTextCond = rX-(int)boundsCond.getX();
int yTextCond = rY-(int)boundsCond.getY()
+ (int)boundsTemp.getHeight();
g.drawString(condStr, xTextCond, yTextCond);
fillRect метод позволяет Вам тянуть прямоугольник, заполненный указанным цветом.
...
Rectangle2D boundsTemp
= font.getStringBounds(tempString, frc);
Rectangle2D boundsCond
= font.getStringBounds(condStr, frc);
int wText = Math.max((int)boundsTemp.getWidth(),
(int)boundsCond.getWidth());
int hText = (int)boundsTemp.getHeight()
+ (int)boundsCond.getHeight();
int rX = (size.width-wText)/2;
int rY = (size.height-hText)/2;
g.setColor(Color.LIGHT_GRAY);
g2.fillRect(rX, rY, wText, hText);
...
Попытайтесь изменить WeatherWizard демонстрационный пример, чтобы изменить графический контент. Например, используйте fillRoundRect метод вместо fillRect или примените другой размер шрифта в setFont метод. Найдите полный код для этого апплета в WeatherWizard.java файл. Демонстрационный пример также требует следующих изображений: weather-cloud.png, weather-rain.png, weather-snow.png, и weather-sun.png расположенный в images каталог.