JavaFX: Деактивирайте хоризонталната лента за превъртане на TableView

Имам следния въпрос: Бих искал да деактивирам хоризонталната лента за превъртане на моя TableView. Може да не се вижда, но TableView също може да не се превърта хоризонтално. Видимостта на хоризонталната лента за превъртане може да бъде зададена в CSS:

.table-view *.scroll-bar:horizontal *.increment-button,
.table-view *.scroll-bar:horizontal *.decrement-button {
    -fx-background-color: null;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-padding: 0;
}

.table-view *.scroll-bar:horizontal *.increment-arrow, 
.table-view *.scroll-bar:horizontal *.decrement-arrow {
    -fx-background-color: null;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-padding: 0;
    -fx-shape: null;
}

Източници: Как за скриване на хоризонталната лента за превъртане на ListView в JavaFX и https://community.oracle.com/thread/2377826?tstart=0.

Това работи добре, но все още мога да превъртам TableView хоризонтално (въпреки че лентата за превъртане не се вижда). Зададох ширините на колоните, както следва:

col1.setPrefWidth(table.getPrefWidth()*0.40);
col2.setPrefWidth(table.getPrefWidth()*0.20);
col3.setPrefWidth(table.getPrefWidth()*0.20);

Това работи, когато TableView не показва никакви редове. Но когато го попълня (чрез натискане на бутон), колоните са леко разтегнати и това позволява на TableView да се превърта хоризонтално.

Възможно ли е да скриете само лентата за превъртане или можете да забраните и самото превъртане?

Всяка помощ е много ценена!


person bashoogzaad    schedule 03.11.2014    source източник
comment
Опитайте се да дадете по-тесни ширини на колоните, за да се отървете от разтягания. В противен случай предоставете MVCE.   -  person Uluk Biy    schedule 06.11.2014


Отговори (1)


Опитайте се да зададете

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);

без да задавате предпочитана ширина на колоните.

person Uluk Biy    schedule 03.11.2014
comment
Благодаря на Uluk Biy за отговора! Пробвах и вече не мога да скролвам хоризонтално. Недостатъкът е, че не мога да контролирам ширината на колоните. Сега всички колони имат еднаква ширина. Има ли решение за това? - person bashoogzaad; 04.11.2014
comment
След това опитайте да зададете предпочитани ширини, но imo те ще бъдат ефективни само за първоначално изобразяване. Тези стойности на ширината ще се променят при промяна на размера на колоната, както е описано в документа на правилата. - person Uluk Biy; 04.11.2014
comment
@bashoogzaad също вижте JavaFX 2 Автоматична ширина на колона - person Uluk Biy; 04.11.2014
comment
Има ли някакъв начин все още да можете да зададете ширините на колоните? Предпочитаните ширини вече са заменени от правилото. - person bashoogzaad; 06.11.2014
comment
Лентата за превъртане все още се появява понякога. Не прави нищо полезно, но се появява, вероятно защото ширината на таблицата е като 100,1%. - person JoshuaD; 12.07.2017