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

JavaFX TreeTableView -禁止编辑不可用的单元格

JavaFX TreeTableView是JavaFX框架中的一个控件,用于显示层次结构的表格数据。它是TableView的扩展,可以展示树形结构的数据,并支持对单元格进行编辑。

禁止编辑不可用的单元格是指在TreeTableView中,某些单元格可能由于业务逻辑或权限限制而不可编辑。为了实现禁止编辑不可用的单元格,可以通过设置单元格的可编辑属性来实现。

在JavaFX中,可以通过实现一个自定义的TreeTableCell类来控制单元格的可编辑性。在该类中,可以根据业务逻辑判断单元格是否可编辑,并设置相应的可编辑属性。

以下是一个示例代码,演示如何禁止编辑不可用的单元格:

代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeTableColumn;
import javafx.scene.control.TreeTableView;
import javafx.scene.control.cell.TreeItemPropertyValueFactory;
import javafx.stage.Stage;

public class TreeTableViewExample extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        // 创建树形表格视图
        TreeTableView<Person> treeTableView = new TreeTableView<>();

        // 创建树形表格列
        TreeTableColumn<Person, String> nameColumn = new TreeTableColumn<>("Name");
        nameColumn.setCellValueFactory(new TreeItemPropertyValueFactory<>("name"));

        TreeTableColumn<Person, Integer> ageColumn = new TreeTableColumn<>("Age");
        ageColumn.setCellValueFactory(new TreeItemPropertyValueFactory<>("age"));

        // 将列添加到树形表格视图中
        treeTableView.getColumns().add(nameColumn);
        treeTableView.getColumns().add(ageColumn);

        // 创建树形表格数据
        TreeItem<Person> rootItem = new TreeItem<>(new Person("John", 30));
        TreeItem<Person> childItem = new TreeItem<>(new Person("Alice", 25));
        rootItem.getChildren().add(childItem);

        // 设置树形表格数据源
        treeTableView.setRoot(rootItem);

        // 设置单元格可编辑性
        nameColumn.setCellFactory(column -> new TreeTableCell<Person, String>() {
            @Override
            public void updateItem(String item, boolean empty) {
                super.updateItem(item, empty);
                if (item == null || empty) {
                    setText(null);
                    setEditable(false); // 禁止编辑不可用的单元格
                } else {
                    setText(item);
                    setEditable(true);
                }
            }
        });

        // 创建场景并显示
        Scene scene = new Scene(treeTableView, 400, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    // 定义数据模型类
    public static class Person {
        private String name;
        private int age;

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public int getAge() {
            return age;
        }
    }
}

在上述示例中,我们创建了一个TreeTableView,并添加了两列:Name和Age。然后,我们创建了一个树形表格数据,并将其设置为TreeTableView的根节点。接下来,我们通过设置nameColumn的CellFactory来控制单元格的可编辑性。在CellFactory中,我们根据单元格的内容判断是否可编辑,并设置相应的可编辑属性。

这样,当某个单元格的内容为null或者为空时,该单元格将被禁止编辑,否则可以编辑。

JavaFX TreeTableView的应用场景包括但不限于:

  1. 文件管理器:可以使用TreeTableView展示文件和文件夹的层次结构,并支持对文件名进行编辑。
  2. 组织架构图:可以使用TreeTableView展示组织架构的层次结构,并支持对员工信息进行编辑。
  3. 目录结构展示:可以使用TreeTableView展示目录结构,并支持对目录名称进行编辑。

腾讯云提供了一系列的云计算产品,其中包括与JavaFX TreeTableView相关的产品。您可以参考以下链接了解更多关于腾讯云的产品信息:

  1. 腾讯云云服务器(CVM):提供可扩展的云服务器实例,用于部署和运行JavaFX应用程序。
  2. 腾讯云数据库MySQL版:提供高性能、可扩展的MySQL数据库服务,用于存储JavaFX应用程序的数据。
  3. 腾讯云对象存储(COS):提供安全、可靠的对象存储服务,用于存储JavaFX应用程序中的文件和资源。

请注意,以上链接仅供参考,具体的产品选择应根据您的实际需求和预算来决定。

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

相关·内容

ABAP 之ALV列编辑单元格编辑使用方式

ALV可编辑方式,这里分享给大家....序 在ALV展示内容时,分为直接查看,用户事件,跳转,光标事件等等,其中编辑ALV数据是经常使用动作. 这里简单介绍两种ALV可编辑方式....ALV 单元格编辑 在工作应用中,会遇到当达到某种条件时,某个单元格可以编辑或者某个单元格不可以编辑.此时会跟单元格颜色一样.针对某个格子进行逻辑判断或者赋值.这里详细讲下,如何进行单元格编辑 ....* 第三步 , 需要可以编辑单元格进行逻辑判断 if 条件. 清空工作区 gwa_edit-fieldname = '列字段'.   ...结果展示 技术总结 在工作中ALV数据内容编辑是经常使用一种方式,此时就需要我们能够熟练使用对应技术.此篇文章中介绍了两种必会alv可编辑案例.希望能够帮助大家.

3.8K31

Spread for Windows Forms高级主题(3)---单元格编辑模式

理解单元格编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容。在一个单元格编辑能力被称为编辑模式。一些属性和方法可以用来自定义编辑模式使用。...image.png 一个单元格将进入编辑模式(开启编辑模式),当: 用户在单元格中输入内容 用户双击单元格 EditMode属性设置为true 一个单元格离开编辑模式(关闭编辑模式),当 用户按下回车键...你可以使用StartCellEditing 和 StopCellEditing方法启动和结束编辑模式。 阻止单元格获取焦点 你可以防止单元格获得焦点,从而禁止终端用户点击该单元格。...这种情况可能会发生在一个复选框单元格中,或在不可编辑组合框单元格中,或者当光标移动到超链接单元格时候。 当单元格处于编辑模式时,单元格备注指示器并不会出现 。...这段示例代码为单元格区域设置了可编辑单元格备注,并设置单元格备注指示器颜色为绿色(而不是默认红色)。

1.8K60

Ubuntu 18.04中截图工具shutter编辑按钮不可用解决办法

Shutter是一个由第三方提供在Ubuntu上运行截图工具,相对于系统自带截图工具(默认可通过Ctrl + Shift + Print快捷键启动截图),最大优点就是可以即时对图片进行编辑,在图片上做一些标记和文字标注等...在Ubuntu 16.04上,该软件运行一切正常,当将操作系统升级到18.04之后,启动Shutter后你会发现原先编辑按钮不可用了。点击编辑按钮,提示说缺少libgoo-canvas-perl库。...看来我们不得不手动将该软件所依赖库装一遍了。 ?   按照以下步骤和链接下载并安装所需包(注意Ubuntu 18.04只提供64位版本)。...总结 以上所述是小编给大家介绍Ubuntu 18.04中截图工具shutter编辑按钮不可用解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。...在此也非常感谢大家对ZaLou.Cn网站支持!

1.5K31

手拉手JavaFX场景

()值摆放每一个子节点setHgrow(hbox,Priority.ALWAYS);javafx有4中控件来表示多项数据ListView:列表TreeView:树TableView:表格TreeTableView...TextField文本字段、Cursor光标、imageView图像视图、addEventHandler添加事件处理程序、KeyEvent键盘事件、MouseEvent鼠标事件、BorderPane布局​编辑...BorderPane布局顶部,底部,左,右或中心区域中子节点。...BorderPane顶部和底部区域允许可调整大小节点占用所有可用宽度。左边界区域和右边界区域占据顶部和底部边界之间可用垂直空间。默认情况下,所有边界区域尊重子节点首选宽度和高度。...放置在顶部,底部,左侧,右侧和中心区域中节点默认对齐方式如下:● 顶部: Pos.TOP_LEFT● 底部: Pos.BOTTOM_LEFT● 左侧: Pos.TOP_LEFT● 右侧: Pos.TOP_RIGHT

14700

VBA实战技巧:快速返回最后一次编辑单元格

在有些情况下,我们可能需要快速返回到最后一次编辑单元格。例如,最后一次编辑单元格单元格K112,然而我的当前单元格单元格C1,如何定位这个最后编辑单元格并快速返回到该单元格呢?...& Target.Address, ScreenTip:="单击返回到最近一次编辑单元格",TextToDisplay:="返回" End Sub 代码假设你正在操作工作表是Sheet1,并且将返回单元格链接放置在单元格...此时,你在工作表Sheet1中进行编辑操作后,单击单元格A2中“返回”,可以快速回到最后一次编辑操作单元格,如下图1所示。...ActiveWorkbook.FullName) / 1000000, 1) &"Mb" Application.DisplayAlerts = True End Sub 那么,当我们要回到最近我们手动编辑单元格时...,总会回到这个保存时间单元格

89020

c# WinForm开发 DataGridView控件各种操作总结(单元格操作,属性设置)

******假设希望,DataGridView 内某个单元格不可编辑, 那么仅仅要: // 设置 DataGridView1 第2列整列单元格为仅仅读 DataGridView1.Columns[...: 1) 禁止全部列或者行Resize // 禁止用户改变DataGridView1全部列列宽 DataGridView1.AllowUserToResizeColumns = false...可是能够通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。...DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; *******依据条件设定单元格不可编辑状态 当一个一个通过单元格坐标设定单元格...ReadOnly 属性方法太麻烦时候,你能够通过 CellBeginEdit 事件来取消单元格编辑

3.9K10

C#—— DataGridView控件各种操作总结(单元格操作,属性设置)

******如果希望,DataGridView 内某个单元格不可编辑, 那么只要: // 设置 DataGridView1 第2列整列单元格为只读 DataGridView1.Columns[1]....如果设置 DataGridView对象AllowUserToDeleteRows属性为 False 时, 用户行删除操作就被禁止了。 // 禁止DataGridView1行删除操作。...但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。...DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; *******根据条件设定单元格不可编辑状态 当一个一个通过单元格坐标设定单元格...ReadOnly 属性方法太麻烦时候,你可以通过 CellBeginEdit 事件来取消单元格编辑

6.2K32

【转】基于C#WinForm中DataGridView控件操作汇总

******如果希望,DataGridView 内某个单元格不可编辑, 那么只要: // 设置 DataGridView1 第2列整列单元格为只读 DataGridView1.Columns[1].ReadOnly...1) 禁止所有的列或者行Resize // 禁止用户改变DataGridView1所有列列宽 DataGridView1.AllowUserToResizeColumns = false; //禁止用户改变...但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。...DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; *******根据条件设定单元格不可编辑状态 当一个一个通过单元格坐标设定单元格...ReadOnly 属性方法太麻烦时候,你可以通过 CellBeginEdit 事件来取消单元格编辑

5.1K50

JavaFX——(第一篇:介绍篇)

JavaFX体系结构和框架 JavaFx平台是一个构建于java技术基本上并且容易创建和部署富客户端平台跨平台应用。...下图说明JavaFx 2整体架构,分别描述了各个部件和各部分是如何联系起来。在下面的JavaFX API基础上就可以运行你JavaFx代码。...图1.JavaFx 2 整体架构 场景图 JavaFX场景图,显示在整体框架最顶层,是整体JavaFX应用起始点。它是一个分层次树状结构结点来表示应用用户接口可视化元素。...它能在java应用中开发下面的特性: 从本地或远端URL渲染HTML内容 支持历史浏览并且提供回退和前进导航 重新加载内容 web组件应用效果 编辑HTML内容 执行JavaScript命令 处理事件...注意: JavaFX场景构建器没有依赖任何特定IDE。您可以运行它作为一个独立工具来创建您UI布局和编辑结果FXML文件使用一个文本编辑器,你选择。

5.6K60

Spread for Windows Forms高级主题(2)---理解单元格类型

单元格类型常常在数据模型中传递原始数据。 头部单元格 头部单元格是可以渲染,但是是不可编辑。虽然你可以将一种单元格类型赋给行头或者列头单元格,但是单元格类型仅仅用来描绘。...在单元格中,编辑操作被限制在数据区域单元格中。如果你想将一些可编辑部件像 表头那样进行操作,你可以将列头隐藏(或者关闭) ,将表单第一行冻结,然后使用冻结行作为你伪头部单元格。...使用子编辑器 对于几种可编辑单元格类型,当你点击单元格内部时,就会显示一个编辑器。...3) 对调用函数设置子编辑器(SubEditor属性) 关于子编辑示例,请参阅上面“自定义弹出日期时间控件”,这里日历子编辑器在日期时间单元格中可用。...例如,在日期时间单元格中,你可能想要禁止弹出日历控件; 在数字单元格中你可能想要禁止弹出计算器控件。

2.4K80

如何使用MapTool构建交互式地牢RPG 【Gaming】

更新JavaFX MapTool需要JavaFX,但是Java维护人员最近停止在Java下载中捆绑它。这意味着,即使安装了Java,也可能没有安装JavaFX。...一些发行Linux版本提供了JavaFX包,因此如果您试图运行MapTool并获得有关JavaFX错误,请下载最新自包含版本: 对于 基于Ubuntu and other Debian系统 对于...调整网格时,可以更改网格线颜色以供自己参考。以像素为单位设置单元格大小。单击并拖动以将地图工具栅格与地图栅格对齐。...在“编辑标记”对话框中,单击“状态”选项卡并取消选择“隐藏”旁边单选按钮。 对要暴露其健康状况每个标记执行此操作。...面板中将显示一个标记为“新建”按钮。右键单击“新建”按钮并选择“编辑”。

4.4K60

JavaFX WebView概述,很强大,内置了类似Electron功能

来自 Murali Billa JavaFX技术人员主要成员 在此博客中,我们将研究JavaFX如何渲染网页以及负责该网页组件-即WebView JavaFX是: 用于创建和交付可在多种设备上运行桌面应用程序以及富...JavaFX主要功能: WebView:一个Web组件,使用WebKit HTML技术可以将网页嵌入JavaFX应用程序中。...JavaFX WebView: JavaFX WebView  是一个微型浏览器(也称为嵌入式浏览器),它通过JavaFX  应用程序中API提供Web查看器和完整浏览功能  。...WebView   使开发人员可以在其Java应用程序中实现以下功能: 从本地或远程URL呈现HTML内容 支持历史记录并提供前进和后退导航 重新加载内容 将效果应用于Web组件 编辑HTML内容 执行...媒体播放 表单控件(除外) 可编辑内容 历史维护 支持,,和标签 SVG 网络插座 网络工作者

10.5K41

Java一分钟之-JavaFX控件:Button, TextField, Label等

Label - 用于显示静态文本信息,不可编辑。常用来说明其他控件用途或者提供反馈信息。 常见问题与易错点 1. 样式问题 问题描述:控件样式不符合预期,例如字体、颜色或大小。...; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import...javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox...通过调整布局和事件处理,你可以构建出更复杂交互逻辑。 总结 理解并熟练使用JavaFX基础控件是创建功能丰富、用户友好GUI关键。...通过实践,你可以更好地掌握这些控件用法,避免常见问题,提升你JavaFX应用开发技能。

22210

【译】W3C WAI-ARIA最佳实践 -- 布局

grid 还可以提供诸如单元格内容编辑,选择,剪切,复制和粘贴等功能。 在一个呈现表格数据 grid 中,每一个单元格都包含一个可聚焦元素或其单元格本身可聚焦,无论单元格内容是否可编辑或可交互。...当使用导航键在单元格间移动焦点时,它们不可用于类似操作组合框或在单元格内移动输入光标等事情。如果需要此功能,请参阅Editing and Navigating Inside a Cell。...在单元格编辑和导航 当使用导航键在单元格间移动焦点,它们不能用来执行像操作组合框或在单元格内移动光标的操作。用户可能需要用于网格导航键来操作单元格元素,如果单元格包含: 可编辑内容。...如果网格提供内容编辑功能,并且包含在某些条件下禁用编辑功能单元格,在编辑功能被禁用时,设置 aria-readonly 为 true。...般来说,使用键盘进行导航时,不可用元素不可聚焦。但是,在某些需要发现功能场景中,如果不可用元素可聚焦,可以帮助屏幕阅读器用户发现这些功能存在。

6.1K50
领券