Ich versuche im unterem Beispiel die Breite vom Rectangle an die Breite vom Text anzupassen.
Wenn der Text kurz ist, sagen wir mal 4-6 Buchstaben gibt es kein Problem. Erst wenn ich einen längeren Wort oder einen Satz schreibe funktioniert es nicht mehr. habt ihr irgendwelche Ideen woran das liegen könnte und wie ich das lösen kann?
// Javafx CODE
//------------------------------------------------------
// myStyle.css
//------------------------------------------------------
Wenn der Text kurz ist, sagen wir mal 4-6 Buchstaben gibt es kein Problem. Erst wenn ich einen längeren Wort oder einen Satz schreibe funktioniert es nicht mehr. habt ihr irgendwelche Ideen woran das liegen könnte und wie ich das lösen kann?
// Javafx CODE
Java:
Group root = new Group();
Pane holder = new Pane();
holder.setLayoutX(10);
holder.setLayoutY(10);
Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add(getClass().getResource("myStyle.css").toExternalForm());
primaryStage.setScene(scene);
Text txt = new Text("This is a Long Text");
txt.getStyleClass().add("roundedNavText");
double tWidth = Math.round(txt.getBoundsInLocal().getWidth());
double tHeight = Math.round(txt.getBoundsInLocal().getHeight());
int textOffsetFromBottom = 10;
int rectangleTextOffset = 35;
Rectangle r = new Rectangle(tWidth + (rectangleTextOffset * 2),200);
r.setArcHeight(20);
r.setArcWidth(20);
r.setFill(Color.web("#668845"));
txt.setLayoutX(r.getLayoutX()+r.getWidth()/2-tWidth);
txt.setLayoutY(r.getLayoutY()+r.getHeight()-tHeight-textOffsetFromBottom);
holder.getChildren().addAll(r, txt);
root.getChildren().add(holder);
//------------------------------------------------------
// myStyle.css
//------------------------------------------------------
CSS:
.roundedNavText{
-fx-font-family: Arial;
-fx-font-size: 18px;
-fx-text-fill: #311c09;
-fx-font-weight: bold;
-fx-font-smoothing-type: gray;
}
Zuletzt bearbeitet von einem Moderator: