webview不会随着javafx中的屏幕最大化

时间:2018-07-17 18:50:34

标签: java javafx

我正在使用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>

1 个答案:

答案 0 :(得分:0)

找到有关JavaFX布局的一些教程。如果我对您的理解正确,这应该可以解决问题。 VBoxHBoxGridPane非常适合处理不断增长的布局。本示例中的密钥为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>