libro
www.tuyano.com
初心者のためのJavaFXプログラミング入門

シェイプを使ったベクターグラフィック (5/6)

作成:2015-04-04 11:51
更新:2015-04-04 11:51

■クリッピングによる切り抜き

基本的な図形の作成についてはだいたいわかってきました。が、より複雑な図形を作成する上で覚えておきたい機能についてもいくつか補足しておきましょう。

まずは、「クリッピング」についてです。クリッピングというのは、ウインドウの中に「窓」を開けて、そこから表示するものです。要するに、描かれているグラフィックの一部分だけを切り抜いて表示することができるのです。

このクリッピングは、「Node」というクラスにある「setClip」というメソッドで設定できます。Nodeクラスは、BorderLayoutPaneなどのコンテナ類、更にはここでとりあげたシェイプ類のスーパークラスでもあります。
《Node》.setClip( 《Node》);
このsetClipは、引数にNodeインスタンスを指定します。これにより、その部品に引数のノードの形状をクリッピング領域として設定します。その部品の表示は、引数に指定したノードの形状の形に切り取ったものが表示されます。引数のノードの形状の外側は何も描画されなくなります。
 では、実際にやってみましょう。下にサンプルのリストを掲載しておきます。先ほどのcreateShapeメソッドを修正して使って下さい。

ここでは、RectangleCircleを作成してrootに組み込んだ後、クリッピング用のCircleを用意しています。そして、それを
root.setClip(clip);
でクリッピングに設定しています。これにより、setClipしたCircleの円の形に切り抜かれてグラフィックが表示されるようになります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

public void createShape(Pane root){
    Rectangle r = new Rectangle(50, 50, 100, 100);
    r.setFill(Color.RED);
    r.setStroke(Color.BLUE);
    r.setStrokeWidth(3);
    root.getChildren().add(r);
    Circle c = new Circle(150, 150, 50);
    c.setFill(Color.YELLOW);
    c.setStroke(Color.GREEN);
    c.setStrokeWidth(10);
    root.getChildren().add(c);
    Circle clip = new Circle(120, 120, 75);
    root.setClip(clip);
}

※関連コンテンツ

「初心者のためのJavaFXプログラミング入門」に戻る