首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaFX 8:调整ListView单元格的高度以适应其ScrollBar

JavaFX 8是Java平台上的一个图形用户界面(GUI)工具包,用于创建丰富的桌面应用程序。它提供了许多UI组件,包括ListView,用于显示列表数据。

在JavaFX 8中,调整ListView单元格的高度以适应其ScrollBar可以通过自定义单元格的方式实现。以下是一个完善且全面的答案:

ListView是JavaFX中用于显示列表数据的控件。它可以在垂直方向上显示多个单元格,并且可以通过滚动条进行滚动。默认情况下,ListView的单元格高度是固定的,无法根据内容的多少进行自适应。但是,我们可以通过自定义单元格来调整ListView单元格的高度以适应其ScrollBar。

要调整ListView单元格的高度,我们可以创建一个自定义的ListCell类,并重写其updateItem方法。在updateItem方法中,我们可以根据单元格的内容来动态调整单元格的高度。

以下是一个示例代码,演示如何调整ListView单元格的高度以适应其ScrollBar:

代码语言:txt
复制
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class ListViewExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        ListView<String> listView = new ListView<>();
        ObservableList<String> items = FXCollections.observableArrayList(
                "Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9", "Item 10",
                "Item 11", "Item 12", "Item 13", "Item 14", "Item 15", "Item 16", "Item 17", "Item 18", "Item 19", "Item 20"
        );
        listView.setItems(items);

        listView.setCellFactory(param -> new ListCell<String>() {
            @Override
            protected void updateItem(String item, boolean empty) {
                super.updateItem(item, empty);

                if (empty || item == null) {
                    setText(null);
                    setGraphic(null);
                } else {
                    setText(item);
                    setPrefHeight(30); // 设置单元格的高度
                }
            }
        });

        VBox root = new VBox(listView);
        Scene scene = new Scene(root, 200, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在上面的示例代码中,我们创建了一个ListView,并设置了一个ObservableList作为其数据源。然后,我们通过调用setCellFactory方法来设置ListView的单元格工厂。在单元格工厂中,我们创建了一个自定义的ListCell,并重写了其updateItem方法。在updateItem方法中,我们根据单元格的内容设置了单元格的高度为30。

这样,当ListView显示时,每个单元格的高度都会被调整为30,以适应其ScrollBar。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云数据库(TencentDB)。

腾讯云云服务器(CVM)是一种弹性计算服务,提供可扩展的计算能力,用于部署和运行各种应用程序。您可以使用腾讯云云服务器来部署JavaFX应用程序,并提供稳定可靠的计算资源。

腾讯云数据库(TencentDB)是一种高性能、可扩展的云数据库服务,支持多种数据库引擎,包括MySQL、SQL Server、MongoDB等。您可以使用腾讯云数据库来存储和管理JavaFX应用程序的数据。

更多关于腾讯云云服务器和腾讯云数据库的信息,请访问以下链接:

腾讯云云服务器:https://cloud.tencent.com/product/cvm

腾讯云数据库:https://cloud.tencent.com/product/cdb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Flutter 组件集录】Scrollbar| 8月更文挑战

一、Scrollbar 的使用 1. Scrollbar 的效果 在ListView 这种可滑动的组件中,默认情况没有右侧的指示器 ,这样用户在滑动中不太容易知道滑动进度。...使用 Scrollbar 就可以在 右侧 出现滑动条。如下分别是在 Android 和 iOS 的效果,可以看出在不同平台上,Scrollbar 的展示是有所差异的,比如圆角、高度、宽度等。...神奇的点在于: ListView 的滑动没有和 Scrollbar 有任何的直接联系, Scrollbar 竟然可以跟随 ListView 的进行滑动。...Scrollbar 虽然在使用上非常简单,但其背后的这套数据通知方案是非常值得我们去研究学习的。 2....Scrollbar 的表现属性 从下面 Scrollbar 的构造函数中可以看出,除了 child 是必传的入参,还有 8 个 参数,这里先看一下 isAlwaysShown、thickness、radius

1.3K20

Android View之requestLayout排坑

然而,有一天因为新需求在这个布局里加了一个ListView,运行后,奇怪的现象出现了:ListView右侧的scrollbar一直在闪烁,而自己并没有滚动ListView。...我们知道,scrollbar在用户没有操作时也出现的话,只能说明此时ListView触发了布局计算,而一直在闪烁,则说明一直在触发布局计算。。。        ...先把runnable里设置text和background的地方注释掉,重新运行,果然ListView的scrollbar不闪烁了,log也没有不停在打印了。        ...而我们前面例子里的TextView宽度正是设置为Wrap_Content,同时也没设置mMaxWidth这些影响大小的属性,换一句话说,即我们的TextView大小是内容自适应的,所以每次setText...重新运行后,scrollbar一直闪烁的问题果然就解决了。 四.

6.5K51
  • Java FX制作小游戏

    应用程序必须继承Application类,并实现其start方法,在该方法中初始化应用界面和设置应用的主舞台。...Scene可以根据需要设置宽度和高度,并将根节点(Root Node)设置为场景的内容,从而构建应用程序的用户界面。Scene还可以用于处理鼠标和键盘事件,并支持CSS样式和动画效果。...常用的布局类包括FlowPane、HBox、VBox、BorderPane、GridPane等。布局类可以根据不同的规则自动调整组件的位置和大小,以适应不同的窗口尺寸。...Control:Control是JavaFX中的控件类,用于构建用户界面上的可交互组件。常见的控件包括Button、Label、TextField、ComboBox、ListView等。...注:本文所提及的代码和示例仅供参考,并且可能需要根据您的具体需求进行调整和扩展。

    43510

    Flutter | 滚动组件,ListView,GridVIew等

    ,在 Flutter 中,术语 ViewPort (视口) ,如无特别说明,则是指一个 Widget 的实际显示区域; 例如,一个 ListView 的显示区域的高度是 800 像素,虽然其列表项总高度可能远远超过...复制代码 意思是 ListView 的高度无法确定,所以解决的办法就是给 ListView 设置边界,我们可以使用 SizedBox 指定具体的高度: children: [ Text("商品列表"...但是由于 listView 的高度是固定的,就会导致底部留白,这种情况可以使用屏幕的高度 减去状态类,导航栏,头部的高度。...如果有用到其他的组件,则减去其高度即可 SizedBox( //Material 中,状态类,导航栏,ListTile 高度分别是 24,56,,5 height: MediaQuery.of(...ListView 以填充屏幕剩余空间的方法吗?

    8.7K20

    MyChat,一个私有的“微信“

    这次 MyChat 的设计,推翻了几次,至少现在我仍不满意,但它确确实实已经做到了一定的扩展性,比如新增一个 UI 功能,我有为其考虑使用的 模板方法模式, 比如你想新增一种消息类型,我在 SDK 包中的监听器可以轻松应对...UI 采用的 JavaFx ,了解过 JavaFx 的人都知道这东西在国内的文档表现,为使得页面开发便捷,专门为其开发了一些轮子,比如 FxmlObject ,让你可以轻松的来操作 fxml 文件对象。...实现布局的快速调整,功能的快速迭代。 前端程序准备了 mychat-client 客户端模块 SDK(java语言) ,给你提供足够的 API,将前端开发的权利全都交给你。...缩放问题; listview 空数据鼠标悬停背景色问题; 节点边距问题; listview 鼠标点击,但不选中....聊天内容的文本域如何动态调整宽高?使文本合理的展示? (难搞) javaFx 的边框?边距?背景? 功能问题 现在 UI 数据都存在缓存中,重启应用后消失,这部分数据如何处理?

    3K10

    WPF是什么_wpf documentviewer

    GridView控件显示了来自ItemSource的数据: 2.3. GridView布局与样式 GridViewColumn的列单元格和列标题具有相同的宽度。...默认情况下,每个列都会调整其宽度以适应其内容。当然,你也可以为其设置固定宽度。相关数据内容显示在水平行中。...ItemContainerStyle中的对齐问题 为了防止列标题和单元格之间的对齐问题,不要设置或指定影响ItemContainerStyle中项宽度的属性或模板。...与GridView进行用户交互 当你在程序中使用了GridView时,用户可以与GridView交互并修改其格式。例如,用户可以重新排序列(拖动表头使整列移动)、调整列的大小、选中表中的项和滚动内容。...根据列中内容调整列大小 用户可以双击列标题右侧的钳子来调整列的大小以适应其内容。 你可以将Width属性设置为Double.NaN来产生同样的效果。

    4.7K20

    JavaFX 11发行说明

    添加API以自定义Spinner控件的步骤重复计时 在JavaFX 11中修改值步骤之前,必须在Spinner控件箭头按钮上按下鼠标的默认持续时间。...中不可编辑的ComboBox上的NPE 控制 JDK-8187432 ListView:启动时EditEvent的索引不正确 控制 JDK-8192800 表自动调整大小会忽略列调整大小策略 控制 JDK...Sierra 10.13.2上播放m3u8文件时,MediaPlayer崩溃 媒体 JDK-8199008 [macOS,Linux]实例化MediaPlayer导致CPU使用率超过100% 媒体 JDK...Web Start的引用 其他 JDK-8200587 修复FX API文档中的错误 其他 JDK-8202036 更新OpenJFX许可证文件以匹配OpenJDK 其他 JDK-8202357 ModuleHelper.java...(false)的JFXPanel会导致其processMouseEvent方法永远循环 swing JDK-8088769 HtmlEditor中未显示透明色的Alphachannel web JDK-

    6.7K60

    灵活运用CSS开发技巧

    在线演示 使用:hover描绘鼠标跟随 要点:将整个页面等比划分成小的单元格,每个单元格监听:hover,通过:hover触发单元格的样式变化来描绘鼠标运动轨迹 场景:鼠标跟随轨迹、水波纹、怪圈 兼容:...在线演示 使用max-height切换自动高度 要点:通过max-height定义收起的最小高度和展开的最大高度,设置两者间的过渡切换 场景:隐藏式子导航栏、悬浮式折叠面板 兼容:max-height...在线演示 使用transform模拟视差滚动 要点:通过background-attachment:fixed或transform让多层背景以不同的速度移动,形成立体的运动效果 场景:页面滚动、视差滚动文字阴影...在线演示 使用:scrollbar改变滚动条样式 要点:通过scrollbar的scrollbar-track和scrollbar-thumb等属性来自定义滚动条样式 场景:主题化、页面滚动 兼容::scrollbar...在线演示 自适应相册 要点:自适应照片数量的相册 场景:九宫格相册、微信相册、图集 兼容::only-child、:first-child、:nth-child()、:nth-last-child()、

    4.6K20

    Flutter 旋转轮

    自旋轮有一些功能: 自动播放(启用/禁用) 长按以暂停(启用/禁用) 尺寸调整 文字/图片支持 图像调整支持 顺时针和逆时针平移进行导航 触摸即可在先前平移的方向上导航 绘画定制以改变外观 回调功能通知选定的项目...**hideOthers:**此属性用于确定是否应绘制快门以隐藏除选定以外的所有选项。 **shutterPaint:**如果适用,此属性用于绘制用于绘制快门的设置。此外,它是可定制的。...flutter_spinwheel.dart'; 运行命令:「flutter packages get」 启用「AndriodX」 org.gradle.jvmargs=-Xmx1536M android.enableR8=...在小部件内,我们将添加一个边距,即容器的高度。他的子属性,我们将添加一个列小部件。在此小部件中,我们将添加两个文本,分别是问题和答案。...每个人将获得一个相等分开的圈子部分;select表示圆的选择**(突出显示)「扇区的位置,「autoPlay」表示设置为true进行自动播放,「hideOthers」表示确定是否应绘制快门以隐藏除选定」

    8.9K20

    Using JavaFX UI Controls 12 Table View

    你可以通过实现数据模型(data model) 和 实现  单元格工厂(cell factory) 来填充表格。 表格类提供了表格列嵌入式的排序能力和必要时调整列宽度的功能。...验证例12-6应用的代码: //例 12-6 创建一个表格并为其添加数据 import javafx.application.Application; import javafx.beans.property.SimpleStringProperty...因此带有内容信息的实体出现在表格中。 验证例12-8的代码。...用户键入在单元格中键入了新的值,然后暗下来 Enter键。只有按下了Enter键,单元格编辑才算结束。这一行为取决于TextField的实现。...表 12-8编辑表格的单元格 请记住:默认的TextField 实现,需要用户按下Enter键来提交编辑。

    11.4K20

    49个常用的CSS代码片段,建议整理收藏

    vertical-align用来指定行内元素(inline)或表格单元格(table-cell)元素的垂直对齐方式。...只对行内元素、表格单元格元素生效,不能用它垂直对齐块级元素 // vertical-align:baseline/top/middle/bottom/sub/text-top; 33、实现宽高等比例自适应矩形...长度和高度中长的那条边跟容器大小一致,短的那条等比缩放,可能会有留白。 cover: 保持原有尺寸比例。宽度和高度中短的那条边跟容器大小一致,长的那条等比缩放。可能会有部分区域不可见。...这里需要注意它生效需要满足的条件: 作用环境:父元素设置line-height。需要和height一致。或者将display属性设置为table-cell,将块元素转化为单元格。...同时需要注意的是line-height的高度基于font-size(即字体的高度),如果文字要转行会出现异常哦。 本文完~

    2.2K30

    php读取pdf文件_php怎么转换成pdf

    X:设置多行单元格的行坐标 Y:设置多行单元格的纵坐标 Reseth:true,重新设置最后一行的高度 Stretch:调整文本宽度适应单元格的宽度...Ishtml:true,可以输出html文本,有时很有用的 Autopadding:true,自动调整文本与单元格之间的距离 Maxh:设置单元格最大的高度...Valign:设置文本在纵坐标中的位置,T,偏上,M,居中,B,偏下 Fillcell:自动调整文本字体大小来适应单元格大小。...Resize:true,调整图片的大小来适应宽跟高;false,不调整图片大小;2,强制调整。 Dpi:以多少点每英寸来调整图片大小。...false,单元格的背景为透明,true,单元格必需被填充 Reseth:true,重新设置最后一行的高度 Cell:true,就调整间距为当前的间距 Align

    13.2K10

    手拉手JavaFX场景

    ()值摆放每一个子节点setHgrow(hbox,Priority.ALWAYS);javafx有4中控件来表示多项数据ListView:列表TreeView:树TableView:表格TreeTableView...primaryStage) throws Exception { //获取屏幕 Screen screen = Screen.getPrimary(); //获取屏幕全部宽度,高度...Rectangle2D rec1= screen.getBounds(); //获取可视范围的宽度,高度 Rectangle2D rec2= screen.getVisualBounds...右下角x--"+ rec1.getMaxX()+"右下角y--"+ rec1.getMaxY()); System.out.println("宽度:"+rec1.getWidth()+"高度...BorderPane的顶部和底部区域允许可调整大小的节点占用所有可用宽度。左边界区域和右边界区域占据顶部和底部边界之间的可用垂直空间。默认情况下,所有边界区域尊重子节点的首选宽度和高度。

    17900

    Flutte部件目录-基本部件(一)

    Container按顺序尝试:遵守alignment,将自己调整到child部件的尺寸,遵守宽度,高度和constraints,扩展以适应父部件,变得尽可能小。...如果小部件没有孩子,没有高度,没有宽度,没有约束,也没有对齐,但父级提供有界的约束,则Container展开以适应父级提供的约束。...如果部件有alignment,并且父级提供了有界限的约束,那么容器会尝试展开以适合父级,然后根据alignment将该子级定位到其自身内。...inherited Row  在水平方向上布局子部件的列表。 一个以水平数组显示其子项的部件。 要让孩子展开以填充可用的水平空间,请将该孩子包裹在Expanded部件中。...inherited Column 以垂直阵列显示其子项的部件。 要让子部件扩大以填充可用的垂直空间,请将该子部件包装在Expanded部件中。

    7.5K20

    【QT】控件 -- 多元素类 | 容器类 | 布局类

    通过结合使用 QListWidget 的属性、方法和信号,以及 QListWidgetItem 的方法,可以创建高度定制化的列表控件。...的子类,功能比 ListView 更丰富。...或者 move 方式摆放过去 这种设定方式其实并不方便,尤其是界面如果 内容比较多,不好计算,而且一个窗口大小往往是可以调整的,按照绝对定位的方式,也无法自适应窗口大小。...QSizePolicy::Shrinking:控件的尺寸可以根据空间调整,尽可能缩小以适应空间。 此时的按钮垂直方向都舒展开了,并且调整窗口尺寸,也会按照设定的比例同步变化。...QSizePolicy::Shrinking: 控件的尺寸可以根据空间调整,尽可能缩小以适应空间。 vData 垂直方向的 sizePolicy 选项同上。

    12910

    Flutter-ListView组件下拉刷新+滚动底部加载+缓存封装

    Flutter的ListView组件,虽然很好用,但是数据量大的时候,在低配置的机器上会奇卡无比,所以我封装了一个ListView组件,对数据进行截断,并使用 keframe 插件进行流畅性优化,提升低配置设备的用户体验...flutter_easyloading.dart';//后续去除 import 'package:keframe/size_cache_widget.dart'; /// 可缓存+下拉刷新+滚动到底部自动加载的ListView...) : Scrollbar( child: _createList(), ), ), ); } /// 创建list...CacheTableList( tableList: ["列表内容1","列表内容2","列表内容3","列表内容4","列表内容5","列表内容6"], pageCount: 3,//上面6笔静态数据,会以每三笔的方式加载...注意高度设定需符合要求 createList: (index) { return FrameSeparateWidget(//使用keframe进行单帧动画优化,提升低配置设备流畅性。

    73110
    领券