如何在不使用CSS样式的情况下在Java FX中删除ListView的边框

时间:2018-09-21 08:54:48

标签: javafx javafx-8

ListView listView = new ListView<>();

//类似 listview.removeBorder或listview.setborder(空边框)?

1 个答案:

答案 0 :(得分:1)

嗯,这取决于您在应用程序中使用的主题。

在Modena(默认的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));