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();
}
前述のコードにより、次の出力が生成されます。
コンストラクタと説明 |
---|
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 |
isOpaque()
この描画が完全に不透明かどうかを取得します。
|
boolean |
isProportional()
始点と終点の位置がプロポーショナルか絶対値かを示すbooleanを取得します。
|
public ImagePattern(Image image)
image
- 描画として使用するイメージ。NullPointerException
- イメージがnullの場合。IllegalArgumentException
- イメージのロードが完了していない(つまり、進行状況が< 1)の場合。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)の場合。public final Image getImage()
public final double getX()
public final double getY()
public final double getWidth()
public final double getHeight()
public final boolean isProportional()
[0..1]
の座標がスケーリングされる)に2つの終点が定義されます。このフラグがfalseである場合、座標はノードのローカル座標系で指定されます。Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.