我正在使用SceneBuilder,我希望我的应用程序具有横向工具栏和Web视图。我遇到的问题是,当我最大化屏幕时,webview的大小保持不变,而窗格变大。我已经尝试过Stackpane,但是没有用。现在的结构如下所示:
Pane
VBox
StackPane
WebView
编辑:我尝试了其他方法,例如,这使我可以调整大小,但堆栈窗格充满了整个屏幕,vBox没有位置
AnchorPane
VBox
StackPane
WebView
我的fxml
<AnchorPane fx:id="anchor" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.BrowserController">
<children>
<VBox fx:id="vbox" prefHeight="600.0" prefWidth="200.0" style="-fx-background-color: red;" />
<StackPane fx:id="subPane" alignment="CENTER_RIGHT" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<WebView fx:id="webview" prefWidth="600.0" />
</children>
</StackPane>
</children>
</AnchorPane>
答案 0 :(得分:0)
找到有关JavaFX
布局的一些教程。如果我对您的理解正确,这应该可以解决问题。 VBox
,HBox
和GridPane
非常适合处理不断增长的布局。本示例中的密钥为HBox
。将左侧的VBox
设置为给定宽度,并将WebView
设置为HBox.vgrow = "ALWAYS"
。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.web.WebView?>
<VBox prefHeight="443.0" prefWidth="678.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.BrowserController">
<children>
<MenuBar>
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem mnemonicParsing="false" text="Delete" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
<HBox prefHeight="100.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
<children>
<VBox fx:id="vbox" prefHeight="600.0" prefWidth="200.0" style="-fx-background-color: red;" />
<WebView fx:id="webview" prefWidth="600.0" HBox.hgrow="ALWAYS" />
</children>
</HBox>
</children>
</VBox>