Как удалить границу ListView в Java FX без использования стилей CSS - PullRequest
0 голосов
/ 21 сентября 2018
ListView listView = new ListView<>();

// что-то вроде listview.removeBorder или listview.setborder (пустая граница) ??

1 Ответ

0 голосов
/ 21 сентября 2018

Ну, это зависит от темы, которую вы используете в своем приложении.

В Модене (тема по умолчанию JavaFx 8+) границы и фон ListView реализованы как фоновые слои, и каждый слой является простозаливка простым цветом:

.list-view {
  -fx-background-color: -fx-box-border, -fx-control-inner-background; //this line
  -fx-background-insets: 0, 1;
  -fx-padding: 1;
}

Итак, чтобы удалить границы, вам нужно удалить первую заливку цвета (-fx-box-border) и оставить вторую (-fx-control-inner-background, котораяявляется цветовой константой со значением # F4F4F4 и представляет цвет фона ListView):

listView.setBackground(
   new Background(new BackgroundFill(Color.valueOf("F4F4F4"), null, null))
);

, и вы, вероятно, захотите удалить тот отступ 1px, который использовался для границ:

listView.setPadding(new Insets(0));
...