我正在尝试了解JavaFX中的小部件是如何工作的,并且考虑到以下FXML,我不知道为什么ScrollPane
在ListView
之后进行拆分:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.ToolBar?>
<?import javafx.scene.Group?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.Pane?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0"
prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<top>
<Pane prefHeight="195.0" prefWidth="600.0" BorderPane.alignment="CENTER">
<children>
<Group>
<children>
<Label layoutX="58.0" layoutY="25.0" prefHeight="15.0" prefWidth="80.0" text="Testlabel "/>
</children>
</Group>
</children>
</Pane>
</top>
<center>
<ScrollPane fx:id="scrollPane" prefHeight="200.0" prefWidth="600.0" BorderPane.alignment="CENTER">
<content>
<ListView/>
</content>
</ScrollPane>
</center>
<bottom>
<ToolBar layoutX="-86.0" layoutY="150.0" prefWidth="200.0">
<items>
</items>
</ToolBar>
</bottom>
</BorderPane>
如果列表太长,我只想让ListView
有可能滚动。在Linux Mint上使用最新的JDK 8(1.8.0_05)中包含的JavaFX。
答案 0 :(得分:-1)
将minWidth="600"
作为ListView
的属性来解决问题:
<ScrollPane fx:id="scrollPane" prefHeight="100.0" prefWidth="600.0" BorderPane.alignment="CENTER">
<ListView minWidth="600"/>
</ScrollPane>
但我必须承认这完全不直观。 JavaFX应该自己确定首选宽度应该是多少。闻起来像Swing人开发JavaFX。