JavaFXCSS中心对齐

JavaFXCSS中心对齐,css,javafx-8,Css,Javafx 8,我正在使用CSS在JavaFX中创建一个自定义主题,并尝试使所有HBox和VBox都具有中心对齐。我到处都找遍了,想知道是否有家长或HBox的造型课,但似乎找不到。我知道我可以做HBox.setAligent(Pos.CENTER)但我不想为我拥有的每个HBox或VBox键入该命令。如何使所有HBox具有中心对齐,而不必使用自定义类并将其放入CSS文件中 如中所述,HBox(和VBox,以及非控件子类的任何节点)的样式类默认为空 但是,您可以使用。引用文件: 节点的getTypeSelector

我正在使用CSS在JavaFX中创建一个自定义主题,并尝试使所有HBox和VBox都具有中心对齐。我到处都找遍了,想知道是否有家长或HBox的造型课,但似乎找不到。我知道我可以做
HBox.setAligent(Pos.CENTER)但我不想为我拥有的每个HBox或VBox键入该命令。如何使所有HBox具有中心对齐,而不必使用自定义类并将其放入CSS文件中

如中所述,
HBox
(和
VBox
,以及非
控件
子类的任何节点)的样式类默认为空

但是,您可以使用。引用文件:

节点的getTypeSelector方法返回一个类似于CSS类型选择器的字符串。默认情况下,此方法返回类的简单名称

因此,您只需要使用类名作为选择器。SSCCE:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class AlignmentTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        ListView<String> listView = new ListView<>();
        TextField textField = new TextField();
        Button button = new Button("Click here");
        Label label = new Label("A label");

        VBox root = new VBox(5, new HBox(5, listView, button), new HBox(5, label, textField));

        Scene scene = new Scene(root, 400, 400);
        scene.getStylesheets().add("alignment-test.css");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

如果您想在代码的某些方面获得帮助,您需要在问题中包含该代码。@TylerH虽然我同意许多问题都得益于代码示例,但在这种情况下,即使没有代码示例,问题似乎也表述得相当清楚。解释一下“HBox
(和
VBox
)是否有默认样式类,如果没有,是否有方法为所有没有样式类的
HBox
es(或
VBox
es)提供样式?”
HBox, VBox {
    -fx-alignment: center ;
    -fx-padding: 10 ;
}