sto provando a creare una tabella con due colonne. sto usando il generatore di scene incluso in netbeans 7.2. in tutti gli esempi che ho visto tutto quello che devi fare è trascinare la colonna della tabella sul tavolo e occuperà tutta la dimensione, questo non è vero nel mio caso. questo è il file fxml generato dal generatore di scene. solo per essere chiari non sto cambiando le proprietà della tabella da java.non prenderà la dimensione completa della vista tabella in javaFX
il fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.net.*?>
<?import java.util.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<AnchorPane id="AnchorPane" prefHeight="758.0" prefWidth="956.0" styleClass="screen" xmlns:fx="http://javafx.com/fxml" fx:controller="bgu.dcr.az.cpu.ui.expb.ExperimentBuilderScreen">
<children>
<GridPane id="gridPane1" prefHeight="517.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Label id="label1" alignment="CENTER" contentDisplay="CENTER" prefHeight="38.0" prefWidth="9999.0" styleClass="caption" text="Create New Experiment" textFill="#990000" GridPane.columnIndex="0" GridPane.rowIndex="0">
<font>
<Font name="Consolas Bold" size="20.0" />
</font>
</Label>
<HBox id="hBox1" alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="5.0" GridPane.columnIndex="0" GridPane.rowIndex="1">
<children>
<Label id="label2" graphicTextGap="0.0" styleClass="field-label" text="Experiment Name">
<font>
<Font name="Consolas" size="15.0" />
</font>
<HBox.margin>
<Insets top="3.0" />
</HBox.margin>
</Label>
<TextField id="textField1" prefWidth="200.0" HBox.hgrow="ALWAYS" />
<Button id="button2" fx:id="saveButton" styleClass="dialog-button" text="Save" />
<Button id="button3" styleClass="dialog-button" text="Dismiss" />
</children>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" fx:id="x3" />
</padding>
</HBox>
<VBox id="VBox" alignment="CENTER" spacing="5.0" GridPane.columnIndex="0" GridPane.rowIndex="2">
<children>
<Label id="label3" prefWidth="9999.0" styleClass="field-label" text="Experiment Tests">
<VBox.margin>
<Insets left="5.0" top="5.0" />
</VBox.margin>
</Label>
<HBox id="HBox" alignment="CENTER" spacing="5.0">
<children>
<Button id="button1" prefHeight="999.0" styleClass="add-button" text="New">
<HBox.margin>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" fx:id="x3" />
</HBox.margin>
</Button>
<ListView id="listView1" fx:id="tests" orientation="HORIZONTAL" prefHeight="999.0" prefWidth="200.0" HBox.hgrow="ALWAYS">
<HBox.margin>
<Insets bottom="4.0" right="5.0" top="4.0" />
</HBox.margin>
</ListView>
</children>
</HBox>
</children>
</VBox>
<VBox id="vBox1" prefHeight="200.0" prefWidth="100.0" GridPane.columnIndex="0" GridPane.rowIndex="3">
<children>
<GridPane id="gridPane2" VBox.vgrow="ALWAYS">
<children>
<VBox id="vBox2" prefHeight="321.0" prefWidth="150.0" styleClass="with-dashed-border" GridPane.columnIndex="0" GridPane.rowIndex="0" GridPane.rowSpan="4">
<children>
<Label id="label4" text="Algorithms">
<graphic>
<ImageView id="emptyImageView1" fitHeight="32.0" fitWidth="32.0" preserveRatio="true">
<image>
<Image url="@_algo.png" preserveRatio="false" smooth="false" />
</image>
</ImageView>
</graphic>
</Label>
<Button id="button1" fx:id="newAlgorithmButton" prefWidth="999.0" styleClass="add-button" text="New" VBox.margin="$x3" />
</children>
<GridPane.margin>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" fx:id="x2" />
</GridPane.margin>
</VBox>
<VBox id="vBox2" prefHeight="321.0" prefWidth="150.0" styleClass="with-dashed-border" GridPane.columnIndex="1" GridPane.margin="$x2" GridPane.rowIndex="1">
<children>
<Label id="label4" text="Problem Generator">
<graphic>
<ImageView id="emptyImageView1" fitHeight="32.0" fitWidth="32.0" preserveRatio="true">
<image>
<Image url="@_pgen.png" preserveRatio="false" smooth="false" />
</image>
</ImageView>
</graphic>
</Label>
<Button id="button1" maxHeight="999.0" prefHeight="999.0" prefWidth="999.0" styleClass="add-button" text="New" VBox.margin="$x3" VBox.vgrow="ALWAYS" />
</children>
</VBox>
<VBox id="vBox2" prefHeight="321.0" prefWidth="150.0" styleClass="with-dashed-border" GridPane.columnIndex="2" GridPane.margin="$x2" GridPane.rowIndex="1">
<children>
<Label id="label4" prefWidth="9999.0" text="Correctness tester">
<graphic>
<ImageView id="emptyImageView1" fitHeight="32.0" fitWidth="32.0" preserveRatio="true">
<image>
<Image url="@_ctest.png" preserveRatio="false" smooth="false" />
</image>
</ImageView>
</graphic>
</Label>
<Button id="button1" maxHeight="999.0" maxWidth="999.0" prefHeight="999.0" prefWidth="999.0" styleClass="add-button" text="New" VBox.margin="$x3" VBox.vgrow="ALWAYS" />
</children>
</VBox>
<VBox id="vBox2" prefHeight="321.0" prefWidth="150.0" styleClass="with-dashed-border" GridPane.columnIndex="1" GridPane.margin="$x2" GridPane.rowIndex="2">
<children>
<Label id="label4" prefWidth="130.0" text="Message delayer">
<graphic>
<ImageView id="emptyImageView1" fitHeight="32.0" fitWidth="32.0" preserveRatio="true">
<image>
<Image url="@_mdel.png" preserveRatio="false" smooth="false" />
</image>
</ImageView>
</graphic>
</Label>
<Button id="button1" maxHeight="999.0" maxWidth="999.0" prefHeight="999.0" prefWidth="999.0" styleClass="add-button" text="New" VBox.margin="$x3" VBox.vgrow="ALWAYS" />
</children>
</VBox>
<VBox id="vBox2" prefHeight="321.0" prefWidth="150.0" styleClass="with-dashed-border" GridPane.columnIndex="2" GridPane.margin="$x2" GridPane.rowIndex="2">
<children>
<Label id="label4" prefWidth="130.0" text="Limiter">
<graphic>
<ImageView id="emptyImageView1" fitHeight="32.0" fitWidth="32.0" preserveRatio="true">
<image>
<Image url="@_limiter.png" preserveRatio="false" smooth="false" />
</image>
</ImageView>
</graphic>
</Label>
<Button id="button1" maxHeight="999.0" maxWidth="999.0" prefHeight="999.0" prefWidth="999.0" styleClass="add-button" text="New" VBox.margin="$x3" VBox.vgrow="ALWAYS" />
</children>
</VBox>
<VBox id="vBox2" prefHeight="321.0" prefWidth="150.0" styleClass="with-dashed-border" GridPane.columnIndex="3" GridPane.margin="$x2" GridPane.rowIndex="0" GridPane.rowSpan="4">
<children>
<Label id="label4" prefWidth="9999.0" text="Statistic collectors">
<graphic>
<ImageView id="emptyImageView1" fitHeight="32.0" fitWidth="32.0" preserveRatio="true">
<image>
<Image url="@_scol.png" preserveRatio="false" smooth="false" />
</image>
</ImageView>
</graphic>
</Label>
<Button id="button1" prefWidth="999.0" styleClass="add-button" text="New" VBox.margin="$x3" />
</children>
</VBox>
<HBox id="hBox1" alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="5.0" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="0">
<children>
<Label id="label2" graphicTextGap="0.0" styleClass="field-label" text="Name">
<HBox.margin>
<Insets top="7.0" />
</HBox.margin>
</Label>
<TextField id="textField1" maxHeight="28.0" minHeight="28.0" prefHeight="28.0" prefWidth="200.0" text="Empty Test" HBox.hgrow="ALWAYS" />
</children>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" fx:id="x3" />
</padding>
</HBox>
<VBox id="vBox3" prefHeight="200.0" prefWidth="100.0" GridPane.columnIndex="1" GridPane.rowIndex="3" />
</children>
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
</GridPane>
</children>
</VBox>
<VBox id="vBox4" alignment="CENTER" styleClass="with-dashed-border" GridPane.columnIndex="0" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowIndex="4" GridPane.valignment="CENTER" GridPane.vgrow="ALWAYS">
<children>
<TableView id="tableView1" prefHeight="54.0" prefWidth="837.0" VBox.vgrow="ALWAYS">
<columns>
<TableColumn prefWidth="75.0" text="Column X" />
<TableColumn prefWidth="75.0" text="Column X" />
</columns>
</TableView>
</children>
<GridPane.margin>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" fx:id="x2" />
</GridPane.margin>
</VBox>
</children>
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="38.0" minHeight="38.0" prefHeight="38.0" vgrow="NEVER" />
<RowConstraints maxHeight="32.0" minHeight="32.0" prefHeight="32.0" vgrow="NEVER" />
<RowConstraints maxHeight="100.0" minHeight="100.0" prefHeight="100.0" vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints maxHeight="100.0" prefHeight="100.0" valignment="CENTER" vgrow="ALWAYS" />
</rowConstraints>
</GridPane>
</children>
<stylesheets>
<URL value="@_style.css" />
<URL value="@../_style.css" />
</stylesheets>
</AnchorPane>
grazie mille @jewelsea sei stato il primo e unico posto in cui ho trovato il modo di controllare il ridimensionamento delle colonne. se mi imbatto in un modo per controllare il tavolo da fxml, lo posterò qui. – raven
Mi sembra strano aggiungere la configurazione dell'interfaccia utente nel controller. Puoi fare lo stesso aggiungendo un tag XML nel file .fxml come mostrato in questo link: http://stackoverflow.com/questions/14095708/fxml-set-tableview-column-resize-policy – gabuzo
Grazie per il link gabuzo , Ho aggiornato in base alla risposta per riflettere la nuova funzionalità di JavaFX 2.2 che ora consente di definire la politica di ridimensionamento delle colonne della tabella da FXML. – jewelsea