JavaFX Zentrieren von Text in einem Fensterbereich
Es gibt keine Funktion zum Zentrieren der Knoten in einer Pane
-Klasse, aber wir können StackPane
verwenden, wenn wir die Knoten zentrieren möchten. Dieses Tutorial demonstriert die Verwendung eines StackPane
zum Zentrieren von Text oder anderen Knoten in JavaFX.
JavaFX zentriert Text in einem Fenster
Das StackPane
ist eine Art Fenster, das verwendet wird, um seine Kinder so auszulegen, dass sie mit anderen gestapelt werden können. Wir können das StackPane
ausrichten, um die Knoten im Bereich zu zentrieren.
Die standardmäßige Ausrichtungseigenschaft für ein StackPane
ist Pos.CENTER
. Das JavaFX StackPane
wird aus JavaFX.scene.layout.StackPane
instanziiert.
Das StackPane
hat zwei Konstruktoren, die für unterschiedliche Zwecke verwendet werden. Die Syntax für StackPane
lautet:
StackPane Demo = new StackPane();
Die Konstruktoren von StackPane
sind:
StackPane()
: Das Layout wird mit der StandardausrichtungPos.CENTER
erstellt.StackPane(Node…. nd)
: Das Layout wird mit Default-Ausrichtung erstellt.
Die Ausrichtungseigenschaft kann verwendet werden, um die Knoten in einem StackPane
auszurichten. Es gibt drei Methoden für StackPane
, um mit der Ausrichtung zu arbeiten:
getAlignment()
: Die Methode wird verwendet, um den Wert der Ausrichtungseigenschaft zu erhalten.setAlignment(Posvalue)
: Die Methode wird verwendet, um den Eigenschaftswert der Ausrichtung zu setzen.setAlignment(Node child, Posvalue)
: Die Methode wird verwendet, um den Ausrichtungs-Eigenschaftswert für einen untergeordneten Knoten imStackPane
zu setzen.
Lassen Sie uns ein Beispiel ausprobieren, um den Text von Knoten in einem Bereich mit dem StackPane
zu zentrieren. Siehe Beispiel:
package delftstack;
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Sphere;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class JavaFx_StackPane extends Application {
@Override
public void start(Stage DemoStage) {
// Create the text to be centered
Text Demotext = new Text("Centered Text");
// Font for the text
Demotext.setFont(Font.font(null, FontWeight.BOLD, 20));
// color of the text
Demotext.setFill(Color.BLUE);
// position of the text
Demotext.setX(20);
Demotext.setY(50);
// circle
Circle DemoCircle = new Circle(700, 500, 300);
// fill color
DemoCircle.setFill(Color.LIGHTBLUE);
DemoCircle.setStroke(Color.BLACK);
// Now Create a Stackpane
StackPane DemoStackPane = new StackPane();
// Margin for the above circle
DemoStackPane.setMargin(DemoCircle, new Insets(50, 50, 50, 50));
ObservableList li = DemoStackPane.getChildren();
// Add child nodes to the pane
li.addAll(DemoCircle, Demotext);
// Create a scene
Scene DemoScene = new Scene(DemoStackPane);
// Set title
DemoStage.setTitle("Centered Text Sample");
// Add scene to the stage
DemoStage.setScene(DemoScene);
// Display the results
DemoStage.show();
}
public static void main(String args[]) {
launch(args);
}
}
Der Code erstellt einen Text und einen Kreis im StackPane
und verwendet die Standardausrichtung der Mittelposition. Siehe Ausgabe:
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook