16

JavaFX 2でTableViewを使用する場合、既存の列のサイズを変更する代わりに、魔法のように1つの列が追加されるようです。次のスクリーンショットを参照してください。

私が期待/望んでいること:両方の列に50%のスペースがあり、3番目の(名前のない/空の)列は追加されません。

ここに画像の説明を入力してください

Scene Builder、FXMLコードを使用して作成:

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>

<BorderPane id="BorderPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
  <top>
    <TableView prefHeight="200.0" prefWidth="200.0">
      <columns>
        <TableColumn prefWidth="75.0" text="Column X" />
        <TableColumn prefWidth="75.0" text="Column X" />
      </columns>
    </TableView>
  </top>
</BorderPane>
4

2 に答える 2

38

使用する

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);

これを行うことで、テーブルの列ヘッダーの余分なスペースが列間で分散されるようになります。この分布では、もちろん、列の最大幅と最小幅が考慮されます。
デフォルトでTableView.UNCONSTRAINED_RESIZE_POLICYは、tablecolumns が最初に優先幅を取る場所で使用されます。

于 2012-10-18T08:16:43.263 に答える