JavaFx 2 создает TableView с одним столбцом

Я пытаюсь создать таблицу с одним столбцом, используя следующий код:

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

Однако я получаю таблицу со столбцом «Название города», за которым следует пустой столбец.

Я новичок в JavaFx, поэтому может быть лучший способ сделать это.


person Ayub Malik    schedule 14.06.2012    source источник


Ответы (1)


Я помню, что пытался самостоятельно «удалить» пустые столбцы, играя со свойствами css в прошлом, но безуспешно. Обходной путь был следующим:
- установить ширину pref cityColumn так, чтобы она покрывала все пространство вручную:

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

-2 для ширины границ. Также вы можете напрямую привязать свойство ширины столбца к свойству ширины таблицы, в результате чего ширина столбца автоматически обновляется при изменении ширины таблицы. См. этот ответ https://stackoverflow.com/a/10152992/682495.
Или,
- установите политику изменения размера столбца на CONSTRAINED_RESIZE_POLICY:

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
person Uluk Biy    schedule 14.06.2012
comment
CONSTRAINED_RESIZE_POLICY — это все, что вам нужно - person jewelsea; 14.06.2012
comment
В конце концов пошел на CONSTRAINED_RESIZE_POLICY. - person Ayub Malik; 15.06.2012