首页
学习
活动
专区
工具
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 组件集录】Scrollbar8月更文挑战

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

1.2K20

Android View之requestLayout排坑

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

6.3K51
  • Java FX制作小游戏

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

    34810

    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.6K20

    MyChat,一个私有的“微信“

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

    2.9K10

    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.6K60

    灵活运用CSS开发技巧

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

    4.6K20

    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.1K30

    Flutter 旋转轮

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

    8.8K20

    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.1K10

    手拉手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顶部和底部区域允许可调整大小节点占用所有可用宽度。左边界区域和右边界区域占据顶部和底部边界之间可用垂直空间。默认情况下,所有边界区域尊重子节点首选宽度和高度

    17300

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

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

    7.5K20

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

    FlutterListView组件,虽然很好用,但是数据量大时候,在低配置机器上会奇卡无比,所以我封装了一个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进行单帧动画优化,提升低配置设备流畅性。

    67210
    领券