HOWTO · Java

JavaFX でキャンバスをクリアする

このチュートリアルでは、JavaFX でキャンバスをクリアする方法について説明します。

このページの内容

JavaFX では、キャンバスは一連のグラフィックス コマンドを使用してさまざまな形状やコンポーネントを描画する画像のようなものです。 このノードは、必要な高さと重量で構成されています。

JavaFX キャンバスを使用すると、画面上に長方形、楕円、円などのさまざまな形状を描画できる UI コンポーネントを作成できます。 その特別な UI コンポーネントはキャンバスと呼ばれます。

ただし、キャンバス上の描画を削除または変更する必要がある場合があります。

この記事では、キャンバスを削除またはクリアする方法について説明します。 また、このトピックについて、理解を容易にするために必要なコードと説明を交えて説明します。

JavaFX でキャンバスをクリアする

clearRect() という名前のメソッドを使用すると、特定のコンポーネントを削除したり、キャンバスをクリアしたりできます。 詳細に説明しましょう。

キャンバスに楕円形を作成するには、以下のコードを使用できます。

Diameter = Math.max(Width,
    Height); // Create a mathematical calculation for the ovel with necessary height an weight
if (filledColor == null)
  g.drawOval(x, y, Width, Height); // Draw the oval without fill it with color
else
  g.fillOval(x, y, Width, Height); // Draw the oval and fill it with color
break;

このコードをプログラムに組み込むと、キャンバスに楕円が描かれます。 キャンバスから楕円を削除するか、キャンバスをクリアするには、以下のコードを使用できます。

g.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());

上記のコードは、描画を削除して画面をクリアします。

このメソッドの一般的な形式は次のとおりです。

clearRect( X_Position, Y_Position, Canvas_Height, Canvas_Width )

キャンバスをクリアするためだけに使用するボタンのアクションとしてこれを含めることができます。

以下は、このメソッドを使用した単純なキャンバスの例です

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class FxCanvas extends Application {
  public static void main(String[] args) {
    Application.launch(args); // Launch the application
  }

  @Override
  public void start(Stage PrimaryStage) {
    Canvas canvas = new Canvas(500, 200); // Create the Canvas
    GraphicsContext g = canvas.getGraphicsContext2D(); // Create a 2D graphics context on the canvas
    g.setLineWidth(3.0); // Set line width
    g.setFill(Color.RED); // Set fill color
    g.fillRoundRect(50, 50, 300, 100, 10, 10); // Draw a rounded Rectangle on the canvas
    g.clearRect(80, 80, 140, 50); // Clear the rectangular area from the canvas
    Pane pn = new Pane(); // Create a Pane
    // Provide necessary styles
    pn.setStyle(
        "-fx-padding: 10; -fx-border-style: solid inside; -fx-border-width: 2; -fx-border-insets: 5; -fx-border-radius: 5; -fx-border-color: blue;");
    pn.getChildren().add(canvas); // Add the canvas to the Pane
    Scene scene = new Scene(pn); // Create a Scene
    PrimaryStage.setScene(scene); // Add the Scene to the Stage
    PrimaryStage.setTitle("Clearing Canvas area"); // Set the title of the application
    PrimaryStage.show(); // Display the Stage
  }
}

上記のサンプル コードをコンパイルして環境で実行すると、次の出力が得られます。

出力:

JavaFX クリア キャンバス出力

IDE がライブラリとパッケージの自動インクルードをサポートしていない場合は、覚えておいてください。 次に、手動でコンパイルする前に、これらの必要なライブラリとパッケージを含める必要がある場合があります。