estoy tratando de crear una tabla con dos columnas. estoy usando el generador de escenas incluido en netbeans 7.2. en todos los ejemplos que he visto, todo lo que necesita hacer es arrastrar la columna de la tabla a la tabla y tomará el tamaño completo, esto no es cierto en mi caso. este es el archivo fxml generado por el generador de escenas. para que quede claro que no estoy cambiando las propiedades de la tabla de java.columna de la tabla no tomará el tamaño completo de la vista de tabla en javaFX
la 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>
muchas gracias @jewelsea, usted fue el primer y único lugar donde encontré la manera de controlar el redimensionamiento de las columnas. si encuentro una forma de controlar la tabla desde el archivo fxml lo publicaré aquí. – raven
Me parece extraño agregar la configuración de IU en el controlador. Puede hacer lo mismo agregando una etiqueta XML en el archivo .fxml como se muestra en este enlace: http://stackoverflow.com/questions/14095708/fxml-set-tableview-column-resize-policy – gabuzo
Gracias por el enlace gabuzo , Actualicé por respuesta para reflejar la nueva funcionalidad de JavaFX 2.2 que ahora le permite definir la política de cambio de tamaño de columnas de la tabla desde FXML. – jewelsea