8

I am trying to create a table with a single column using the following code :

TableView<String> table = new TableView<String>();
table.getColumns().clear();
table.getColumns().add(new TableColumn<String, String>("City Name"));
table.setItems(cityList);

However I get a table with the "City Name" column followed by a blank column

I am new to JavaFx so there might be a better way of doing this.

1 Answer 1

15

I recall that tried to "remove" blank columns myself by playing with css properties in the past without luck. The workaround was either,
- set the pref width of the cityColumn to cover whole space manually:

TableColumn<String, String> cityColumn = new TableColumn<String, String>("City Name");
cityColumn.setPrefWidth(table.getPrefWidth() - 2);

-2 for border widths. Also you can bind column width property to table width property directly, resulting the col width is updated automatically when the table width is resized. See this answer https://stackoverflow.com/a/10152992/682495.
Or,
- set the column resize policy to CONSTRAINED_RESIZE_POLICY:

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
Sign up to request clarification or add additional context in comments.

3 Comments

CONSTRAINED_RESIZE_POLICY is all you need
Went for the CONSTRAINED_RESIZE_POLICY in the end.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.