1

我在以下 Browser 对象中将 ImageView 节点居中时遇到问题。我在下面提供了一段代码。我的想法是使用 setStyle("....."),但这似乎对图像的位置没有任何影响(它仍然显示在左上角)。非常感谢任何建议。谢谢!

class Browser extends Region {

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();
    File file;
    ImageView image;

    public Browser(String fileName, Image loaderImage) throws MalformedURLException {
        file = new File(fileName);

        //apply the styles
        getStyleClass().add("browser");

        //add the web view to the scene
        getChildren().add(browser);

        // load default image
        image = new ImageView();
        image.setImage(loaderImage);
        setStyle("-fx-background-position: CENTER;");
        getChildren().add(image);

    }
4

1 回答 1

2

根据Javadocs

默认情况下,Region 继承其超类的布局行为Parent,这意味着它将调整任何可调整大小的子节点到其首选大小,但不会重新定位它们。如果应用程序需要更具体的布局行为,那么它应该使用以下Region子类之一:StackPaneHBoxVBoxTilePaneFlowPaneBorderPaneGridPaneAnchorPane

因此,使用其中之一可能会有更好的运气。

于 2013-11-12T06:58:51.337 回答