我有一个自定义控件,它是3个简单的按钮。控件处理与其绑定的应用程序的操作,但出于原因,它必须驻留在外部阶段。
令人烦恼的是,所有按钮之间都是白色背景。
我已经尝试了以下所有方法来消除它:
new Scene(Node, X, Y, Color.TRANSPARENT);
new Scene(Node, X, Y, null);
.setStyle("-fx-background-color : rgba(0, 0, 0, 0);");
所有这些都未能消除背景的外观。 我已经使用Windows Forms完成了这项工作,但可以使用JavaFX吗?
答案 0 :(得分:1)
您需要设置
的透明度这对我有用:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
HBox hbox = new HBox();
hbox.setSpacing(12);
Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");
Button button3 = new Button("Button 3");
hbox.getChildren().addAll(button1, button2, button3);
Scene scene = new Scene(hbox, Color.TRANSPARENT);
// scene.getStylesheets().add( getClass().getResource("application.css").toExternalForm());
scene.getRoot().setStyle("-fx-background-color: transparent");
primaryStage.initStyle(StageStyle.TRANSPARENT);
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
这是直接的解决方案。当然,不是直接设置样式,而是使用样式表application.css:
.root {
-fx-background-color: transparent;
}
这是一个应用程序在代码上的屏幕截图: