[JavaFX] Border-Radius für das Fenster an sich?
Bekanntlich kann man ja fast allen Elementen einen border-radius verpassen, jedoch möchte ich dies auf das Fenster selbst - die Scene - setzen. Ist das denn möglich?
Gescheiterte Versuche:
- Style im SceneBuilder auf -fx-border-radius: 20 setzen
- In der .css-Datei -fx-border-radius: 20 auf die fx:id AnchorPane_Background setzen
Oder funktioniert das nur auf Elementen im Fenster selbst?
1 Antwort
Vom Fragesteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, CSS
Du kannst dem Root Panel den Style für die abgerundeten Ecken zuordnen. Die Scene und die Stage müssen dafür aber transparent sein.
In der konkreten Application-Klasse:
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(/* some fxml file ... */);
root.setStyle("-fx-background-radius: 5;");
// set stage title, etc. ...
var scene = new Scene(root);
scene.setFill(Color.TRANSPARENT);
stage.setScene(scene);
stage.initStyle(StageStyle.TRANSPARENT);
stage.show();
}
Beachte, dass du auf diesem Weg auch die Titelleiste des Fensters verlierst. Die musst du dir dann selbst neu zusammenbauen.