当前位置: 首页 > 知识库问答 >
问题:

JavaFX ListView使用CSS的圆角

施俊哲
2023-03-14

我想在我的列表视图上有圆角。我目前使用的CSS使角变圆,直到我向ListView添加一个新字符串,然后角不再是圆的。我使用ObservableList来存储我的字符串,并将ListView设置为ObservableList。

我也检查了JavaFX CSS参考,但找不到任何对我的问题有用的东西。

无文本
添加文本后

我目前的 css

.list-view {
    -fx-background-radius: 20px;
}

共有1个答案

左丘凡
2023-03-14

在您的示例中,列表单元格的默认样式与列表视图的圆形背景重叠。您可以向列表视图添加一些填充,这样就不会有任何重叠。您也可以为列表视图的项目设置圆形边框。

FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.HBox?>


<HBox spacing="10.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <ListView fx:id="listView1" style="-fx-background-radius: 20;">
         <items>
            <FXCollections fx:factory="observableArrayList">
               <String fx:value="Item 1" />
               <String fx:value="Item 2" />
               <String fx:value="Item 3" />
            </FXCollections>
         </items>
         <padding>
            <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
         </padding>
      </ListView>
      <ListView fx:id="listView" stylesheets="@styling.css">
         <items>
            <FXCollections fx:factory="observableArrayList">
               <String fx:value="Item 1" />
               <String fx:value="Item 2" />
               <String fx:value="Item 3" />
            </FXCollections>
         </items>
         <padding>
            <Insets bottom="7.0" left="7.0" right="7.0" top="7.0" />
         </padding>
      </ListView>
   </children>
   <padding>
      <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
   </padding>
</HBox>

造型。css(用于第二个列表视图):

.list-view {
    -fx-background-radius: 20;
}

.list-cell, .list-cell::focused {
    -fx-border-radius: 20;
}

预览:

 类似资料:
  • 问题内容: 如何使用CSS创建圆角? 问题答案: 自从引入CSS3以来,使用CSS添加圆角的最佳方法是使用border-radius属性。您可以阅读有关该属性的规范,或获取有关MDN的一些有用的实现信息: 如果您使用的浏览器未 实现 border-radius(Chrome v4之前的版本,Firefox v4之前的版本,IE8,Opera v10.5之前的版本,Safari v5之前的版本),则

  • 问题内容: 我已经看到了很多代码,但是似乎没有一个代码可以很好地工作或根本无法工作。我已经使用了图片作为圆角,但是我需要代码,以使其能够围绕的边界。我针对此问题找到的唯一解决方案是在边框周围的单元格中具有图像。我还能尝试什么吗? 问题答案: 尝试: 这将在Firefox,Safari,Chrome和任何其他CSS3兼容浏览器中运行。为此创建一个单独的类可能会更容易-完全兼容需要3条语句。 另外,请

  • 主要内容:border-*-radius,border-radius在制作网页的过程中,有时我们可能需要实现圆角的效果,以前的做法是通过切图(将设计稿切成便于制作成页面的图片),使用多个背景图像来实现圆角。在 CSS3 出现之后就不需要这么麻烦了,CSS3 中提供了一系列属性来设置元素的圆角效果,如下所示: border-top-left-radius:为元素左上角设置圆角效果; border-top-right-radius:为元素右上角设置圆角效果; bord

  • 问题内容: 是否可以仅使用可以在大多数浏览器(IE,Mozilla,Safari)上运行的css绘制圆? 问题答案: 您可以将.before与带有unicode符号的内容一起用作圆圈(25CF)。 我建议这样做,因为边界半径在IE8及以下版本中将不起作用(我认识到这一建议有点儿想法)。

  • 问题内容: 我正在尝试使三个对象绕一个圆旋转。到目前为止,我已经能够使一个对象绕圆旋转。如果不弄乱代码,我将一无所获。谁能建议最好的方法来做到这一点?这是代码的一部分。谢谢! 问题答案: jQuery解决方案,适用于任意数量的外部项目。

  • 朋友们呢,我对CSS这个话题还不熟悉。我正在尝试执行脉冲效果,正如你们在这张图片中看到的。 我想我的菜单图标(图标旁边的字家)有一个类似的动画。 我的问题是,我不知道如何实现一个完美的圆在哪里实现这个动画。这是我目前的结果: 我能做什么? 这是我的代码: https://multi-level-side-menu-4bj1tj.stackblitz.io 我分享了我正在做的源代码,如果你想编辑一些