JavaFx透明舞台和静止绘画
我试图使一个窗口是透明的,但我仍然可以画上和图纸是不透明的。如果我在舞台上增加透明度,一切都会变得透明。我也尝试过增加团队的透明度,但这似乎没有改变任何事情。我怎样才能做到这一点JavaFx透明舞台和静止绘画,java,javafx,Java,Javafx,我试图使一个窗口是透明的,但我仍然可以画上和图纸是不透明的。如果我在舞台上增加透明度,一切都会变得透明。我也尝试过增加团队的透明度,但这似乎没有改变任何事情。我怎样才能做到这一点 GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); DisplayMode displayMode = gd.getDisplayMode();
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode displayMode = gd.getDisplayMode();
Canvas canvas = new Canvas(displayMode.getWidth(), displayMode.getHeight());
GraphicsContext gc = canvas.getGraphicsContext2D();
Group group = new Group();
group.getChildren().add(canvas);
Scene secondScene = new Scene(group, displayMode.getWidth(), displayMode.getHeight());
gc.setFill(Color.rgb(0, 0, 0, .5));
gc.fillRect(0, 0, 100, 100);
// New window (Stage)
Stage newWindow = new Stage(StageStyle.UNDECORATED);
newWindow.setOpacity(.02);
newWindow.setTitle("Second Stage");
newWindow.setScene(secondScene);
// Set position of second window, related to primary window.
newWindow.setX(0);
newWindow.setY(0);
//newWindow.setWidth(displayMode.getWidth());
//newWindow.setHeight(displayMode.getHeight());
newWindow.show();
因此,基于,我更新了您的代码,添加
secondScene.setFill(Color.TRANSPARENT);
及
并且能够生产
记住,在处理这类事情时,您需要确保层次结构中的每一层都是透明的因此,基于,我更新了您的代码,添加了
secondScene.setFill(Color.TRANSPARENT);
及
并且能够生产
记住,在处理这类事情时,你需要确保层次结构中的每一层都是透明的可以像“帮助”一样吗?可以像“帮助”一样吗?哇,我实际上在两个方面都尝试过其中一个,但我想我从未尝试在场景和舞台上都添加透明。我想这是有道理的哈哈。非常感谢!!哇,我实际上在这两个方面都尝试过其中一个,但我想我从来没有尝试在场景和舞台上都添加透明。我想这是有道理的哈哈。非常感谢!!
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Test extends Application {
@Override
public void start(Stage primaryStage) {
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode displayMode = gd.getDisplayMode();
Canvas canvas = new Canvas(displayMode.getWidth(), displayMode.getHeight());
GraphicsContext gc = canvas.getGraphicsContext2D();
Group group = new Group();
group.getChildren().add(canvas);
Scene secondScene = new Scene(group, displayMode.getWidth(), displayMode.getHeight());
secondScene.setFill(Color.TRANSPARENT); gc.setFill(Color.rgb(0, 0, 0, .5));
gc.fillRect(0, 0, 100, 100);
// New window (Stage)
Stage newWindow = new Stage(StageStyle.UNDECORATED);
newWindow.initStyle(StageStyle.TRANSPARENT);
newWindow.setTitle("Second Stage");
newWindow.setScene(secondScene);
// Set position of second window, related to primary window.
newWindow.setX(0);
newWindow.setY(0);
// newWindow.setWidth(200);
// newWindow.setHeight(200);
newWindow.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}