Класс ImagePattern
public final class ImagePattern
extends Paint Класс ImagePattern заполняет фигуру узором из изображения. Пользователь может указать прямоугольник якоря, который определяет положение, ширину и высоту изображения относительно верхнего левого угла фигуры. Если фигура выходит за пределы прямоугольника якоря, изображение повторяется.
Если переменная proportional установлена в значение true (по умолчанию), то прямоугольник якоря должен быть указан относительно единичного квадрата (0.0->1.0) и будет растянут по всей фигуре. Если переменная proportional установлена в значение false, то прямоугольник якоря должен быть указан в локальной системе координат фигуры, и изображение будет растянуто для соответствия прямоугольнику якоря. Прямоугольник якоря не будет растянут по всей фигуре.
Приведённый ниже пример демонстрирует использование переменной proportional. Фигуры в верхней строке используют пропорциональные координаты (по умолчанию) для указания прямоугольника якоря. Фигуры в нижней строке используют абсолютные координаты. Изображение цветка растягивается для заполнения всей треугольной фигуры, в то время как изображение точки повторяется внутри круговой фигуры.
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.paint.ImagePattern;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
public class HelloImagePattern extends Application {
private static final String flowerURL = "file:flower.png";
private static final String dotsURL = "file:dots.png";
@Override public void start(Stage stage) {
stage.setTitle("Image Pattern");
Group root = new Group();
Scene scene = new Scene(root, 600, 450);
Image dots = new Image(dotsURL);
Image flower = new Image(flowerURL);
Polygon p = new Polygon();
p.setLayoutX(10);
p.setLayoutY(10);
p.getPoints().add(50.0);
p.getPoints().add(0.0);
p.getPoints().add(100.0);
p.getPoints().add(100.0);
p.getPoints().add(0.0);
p.getPoints().add(100.0);
p.setFill(new ImagePattern(flower, 0, 0, 1, 1, true));
root.getChildren().add(p);
Polygon p2 = new Polygon();
p2.setLayoutX(10);
p2.setLayoutY(120);
p2.getPoints().add(50.0);
p2.getPoints().add(0.0);
p2.getPoints().add(100.0);
p2.getPoints().add(100.0);
p2.getPoints().add(0.0);
p2.getPoints().add(100.0);
p2.setFill(new ImagePattern(flower, 0, 0, 100, 100, false));
root.getChildren().add(p2);
Circle circ = new Circle(50);
circ.setTranslateX(120);
circ.setTranslateY(10);
circ.setCenterX(50);
circ.setCenterY(50);
circ.setFill(new ImagePattern(dots, 0.2, 0.2, 0.4, 0.4, true));
root.getChildren().add(circ);
Circle circ2 = new Circle(50);
circ2.setTranslateX(120);
circ2.setTranslateY(10);
circ2.setCenterX(50);
circ2.setCenterY(50);
circ2.setFill(new ImagePattern(dots, 20, 20, 40, 40, false));
root.getChildren().add(circ2);
stage.setScene(scene);
stage.show();
}
Приведённый выше код генерирует следующее:
- С:
- JavaFX 2.2
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ImagePattern(Image image) | Создаёт новый экземпляр ImagePattern из указанного изображения. |
ImagePattern(Image image,
double x,
double y,
double width,
double height,
boolean proportional) | Создаёт новый экземпляр ImagePattern. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
double | getHeight() | Возвращает высоту прямоугольника якоря. |
Image | getImage() | Возвращает изображение, используемое в качестве заливки. |
double | getWidth() | Возвращает ширину прямоугольника якоря. |
double | getX() | Возвращает начальную координату x прямоугольника якоря. |
double | getY() | Возвращает начальную координату y прямоугольника якоря. |
boolean | isProportional() | Возвращает булево значение, указывающее, являются ли начальные и конечные координаты пропорциональными или абсолютными. |
Подробное описание конструкторов
ImagePattern
public ImagePattern(Image image)
- Параметры:
-
image- изображение, используемое в качестве заливки. - Исключения:
-
NullPointerException- если изображение равно null. -
IllegalArgumentException- если изображение не загружено полностью, то есть если прогресс < 1.
ImagePattern
public ImagePattern(Image image, double x, double y, double width, double height, boolean proportional)
- Параметры:
-
image- изображение, используемое в качестве заливки. -
x- начальная координата x прямоугольника якоря. -
y- начальная координата y прямоугольника якоря. -
width- ширина прямоугольника якоря. -
height- высота прямоугольника якоря. -
proportional- указывает, являются ли координаты пропорциональными фигуре, которую ImagePattern заполняет. - Исключения:
-
NullPointerException- если изображение равно null. -
IllegalArgumentException- если изображение не загружено полностью, то есть если прогресс < 1.
Подробное описание методов
getImage
public final Image getImage()
- Возвращает:
- Изображение, используемое в качестве заливки.
getX
public final double getX()
- Значение по умолчанию:
- 0.0
- Возвращает:
- Начальная координата x прямоугольника якоря.
getY
public final double getY()
- Значение по умолчанию:
- 0.0
- Возвращает:
- Начальная координата y прямоугольника якоря.
getWidth
public final double getWidth()
- Значение по умолчанию:
- 1.0
- Возвращает:
- Ширина прямоугольника якоря.
getHeight
public final double getHeight()
- Значение по умолчанию:
- 1.0
- Возвращает:
- Высота прямоугольника якоря.
isProportional
public final boolean isProportional()
[0..1] масштабируются для отображения на границах фигуры, которую заполняет узор. Если этот флаг имеет значение false, то координаты заданы в локальной системе координат узла.- Значение по умолчанию:
- true
- Возвращает:
- Булево значение, равное true, если эта заливка пропорциональна.
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.