不明確な透明な進行標識が欲しいのですが。
ここにコードがあります、それは灰色の背景の状態/シーンを示しています。完全に透明にしたかった。
以下のコードを試してみましたが、透明ではない背景のステージが表示されます。
package application;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.layout.VBox;
import javafx.scene.Paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Main extends Application {
@Override
public void start(Stage stage) {
/*
*
* my css file content:
*
* .progress-indicator .indicator { -fx-background-color: transparent;
* -fx-background-insets: 0; -fx-background-radius: 0;
*
* } .progress-indicator { -fx-progress-color: green ; }
*
*
*
*/
Stage initStage = new Stage();
initStage.initStyle(StageStyle.TRANSPARENT);
ProgressIndicator loadProgress = new ProgressIndicator();
loadProgress.setSkin(null);
loadProgress.setPrefWidth(50);
VBox box = new VBox();
box.getChildren().add(loadProgress);
final Scene scene = new Scene(box, 150, 150);
scene.setFill(Color.TRANSPARENT);
initStage.setScene(scene);
scene.getStylesheets().add("application.css");
initStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ために modena.css
(Java 8)のデフォルトのJavaFXルックアンドフィールの定義)、すべてのコントロール(およびコントロールがロードされている場合はペイン)にわずかに網掛けされた背景が導入されました。
これを削除するには、デフォルトの背景を透明に指定します。これを行うには、次の行をアプリケーションのCSSファイルに追加します。
.root { -fx-background-color: transparent; }
これは、ステージのスタイルとシーンの背景の塗りつぶしを初期化するためにコードに既に設定されている他の設定に追加されます。
stage.initStyle(StageStyle.TRANSPARENT);
scene.setFill(Color.TRANSPARENT);
注:質問のサンプルコードでは、startメソッドに渡されたステージを使用する代わりに、追加のステージ(initStage)が作成されます。渡されたステージは、追加のinitStageを作成するのではなく、コードによって直接初期化、利用、および表示できます。
stage.initStyle(StageStyle.TRANSPARENT);
これは、トップバーを非表示にするためです(最小化、元に戻す、閉じる)
scene.setFill(Color.TRANSPARENT);
これはフレームの色用です(TRANSPARENTを任意の色のGREEN YELLOW RED BLUEに置き換えることができます...)
私にとっては、あなたが私を理解できるのであれば、ガラス越しに見たいです。
色違い
ソリューションは
primaryStage.setOpacity(0.2);
数値0.2は0と1の間です
0は非表示、1は通常の形式ですが、数字の間は透明です
番号を選択してプログラムを実行し、これが必要なものかどうかを確認してください
フルスクリーン用のこのコードがあります
primaryStage.setFullScreen(true);<br>
そしてCSSファイルでこれを行います
.root { -fx-background-color:rgba(0,0,0,1); }<br>
rgba(0,0,0,1)の番号を変更して色を変更できます
これでうまくいきます。
Parent root = FXMLLoader.load(getClass().getResource("login.fxml"));
Scene scene = new Scene(root);
scene.setFill(Color.TRANSPARENT);
stage.setScene(scene);
stage.initStyle(StageStyle.TRANSPARENT);
stage.show();
Uは主に2つのものが必要です:
scene.setFill(Color.TRANSPARENT);
stage.initStyle(StageStyle.TRANSPARENT);