JavaFX で透明なシーンを作成する

MD Aminul Islam 2024年2月15日
  1. JavaFX で透明なシーンを作成する
  2. JavaFX で透明なステージを作成する別の方法
JavaFX で透明なシーンを作成する

アプリケーションの起動時に完全に透明なプリローダー画面が表示されることがあります。 また、デフォルトのクローズ、最小化、または最大化オプションを含むプリローダー画面にタイトル バーが表示されません。

この記事では、アプリケーションでこのシーンを作成する方法を示します。 また、このトピックを理解しやすくするために、適切な説明付きの例を示します。

JavaFX で透明なシーンを作成する

以下の例では、完全に見えないシーンを作成します。 シーンの内容のみを表示します。

この例のコードは次のようになります。

// Importing necessary packages.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class FXTransparent extends Application {
  public void start(Stage PrimaryStage) {
    PrimaryStage.initStyle(
        StageStyle.TRANSPARENT); // Set the initial style to the stage to transparent
    Text txt = new Text("I'm totally \n transparent..."); // Creating a text element.
    txt.setFont(new Font(30)); // Set the font size to 30 for the text.
    VBox vbox = new VBox(); // Create a Vbox
    vbox.getChildren().add(txt); // Add the text to the Vbox
    Scene scene = new Scene(vbox, 400, 250); // Create a scene with Vbox and dimension
    scene.setFill(null); // Set the scene to no fill
    PrimaryStage.setScene(scene); // Add the scene to stage
    PrimaryStage.show(); // Visualize the stage
  }

  public static void main(String[] args) {
    launch(args); // Launch the application
  }
}

コードの各行の目的については既に説明しました。 ここで、コードの重要な部分について説明します。

PrimaryStage.initStyle(StageStyle.TRANSPARENT); の行で、ステージ スタイルを透明に設定します。 これにより、ステージ全体が透明になります。

この目的のために initStyle() メソッドを使用したことに注意してください。 上記のサンプル コードをコンパイルして環境で実行すると、次の出力が得られます。

JavaFX 透過背景出力

JavaFX で透明なステージを作成する別の方法

JavaFX は、FXML とサポート CSS を使用して UI を生成します。 Oracle が公式に提供する Scene Builder を使用して、UI を簡単に作成または変更できます。

このツールを使用すると、マウス クリックだけで CSS プロパティを UI に簡単に追加したり、他の多くのスタイルを UI に追加したりできます。 または、外部 CSS ファイルを作成して、以下のようにコードに含めることもできます。

scene.getStylesheets().add("YourCSS.css")

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

著者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

関連記事 - Java JavaFX