17
JavaFX 2で透明でない子を持つ透明パネルを実装するにはどうすればよいですか?透明でない子を持つ透明なペインを実装するにはどうすればよいですか?
メニューパネル/ウィンドウが透明であるが、テキストアイテムはかなり効果につながる透明でない:私が達成したい 効果はBlenderでは、メニューに適用した例です。
JavaFX 2で透明でない子を持つ透明パネルを実装するにはどうすればよいですか?透明でない子を持つ透明なペインを実装するにはどうすればよいですか?
メニューパネル/ウィンドウが透明であるが、テキストアイテムはかなり効果につながる透明でない:私が達成したい 効果はBlenderでは、メニューに適用した例です。
ペインの背景をアルファコンポーネントの色に設定します。これにはスタイルシートまたはインラインスタイルを使用できます。
あなたのペインがガラスと命名された場合たとえば、その後、以下はそれに丸みを帯びた、半透明のシアンの背景与える:
glass.setStyle("-fx-background-color: rgba(0, 100, 100, 0.5); -fx-background-radius: 10;");
をあなたがした項目のブレンド、stackpanesまたはグループを使用して同様の効果をも達成することができスタックペインまたはグループの背面にある項目にはopacityが設定されます。
ここには、cssのバックグラウンドメソッドを使用した実行可能な例があります。
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.image.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class TranslucentPane extends Application {
@Override public void start(final Stage stage) throws Exception {
final ImageView imageView = new ImageView(
new Image("https://upload.wikimedia.org/wikipedia/commons/b/b7/Idylls_of_the_King_3.jpg")
);
imageView.setFitHeight(300);
imageView.setFitWidth(228);
final Label label = new Label("The Once\nand\nFuture King");
label.setStyle("-fx-text-fill: goldenrod; -fx-font: italic 20 \"serif\"; -fx-padding: 0 0 20 0; -fx-text-alignment: center");
StackPane glass = new StackPane();
StackPane.setAlignment(label, Pos.BOTTOM_CENTER);
glass.getChildren().addAll(label);
glass.setStyle("-fx-background-color: rgba(0, 100, 100, 0.5); -fx-background-radius: 10;");
glass.setMaxWidth(imageView.getFitWidth() - 40);
glass.setMaxHeight(imageView.getFitHeight() - 40);
final StackPane layout = new StackPane();
layout.getChildren().addAll(imageView, glass);
layout.setStyle("-fx-background-color: silver; -fx-padding: 10;");
stage.setScene(new Scene(layout));
stage.show();
}
public static void main(String[] args) { launch(args); }
}
サンプルプログラムの出力:
正常に動作します。ありがとうございました! – dajood