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

Javafx更改tableview中已过滤列表的字体颜色

JavaFX是一种用于构建富客户端应用程序的开发框架。它提供了丰富的图形界面组件和丰富的功能,使开发人员能够创建具有吸引力和交互性的应用程序。

针对你的问题,如果你想要在JavaFX的TableView中更改已过滤列表的字体颜色,你可以通过自定义单元格工厂来实现。以下是一个示例代码:

代码语言:java
复制
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Callback;

public class TableViewExample extends Application {

    private final ObservableList<Person> data = FXCollections.observableArrayList(
            new Person("John", "Doe"),
            new Person("Jane", "Smith"),
            new Person("Bob", "Johnson"),
            new Person("Mike", "Brown")
    );

    @Override
    public void start(Stage stage) {
        TableView<Person> tableView = new TableView<>();
        tableView.setItems(data);

        TableColumn<Person, String> firstNameColumn = new TableColumn<>("First Name");
        firstNameColumn.setCellValueFactory(new PropertyValueFactory<>("firstName"));

        TableColumn<Person, String> lastNameColumn = new TableColumn<>("Last Name");
        lastNameColumn.setCellValueFactory(new PropertyValueFactory<>("lastName"));

        tableView.getColumns().addAll(firstNameColumn, lastNameColumn);

        TextField filterField = new TextField();
        filterField.textProperty().addListener((ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
            tableView.setPredicate(person -> {
                if (newValue == null || newValue.isEmpty()) {
                    return true;
                }

                String lowerCaseFilter = newValue.toLowerCase();

                if (person.getFirstName().toLowerCase().contains(lowerCaseFilter)) {
                    return true;
                } else if (person.getLastName().toLowerCase().contains(lowerCaseFilter)) {
                    return true;
                }

                return false;
            });
        });

        // 自定义单元格工厂来更改已过滤列表的字体颜色
        firstNameColumn.setCellFactory(column -> {
            return new TableCell<Person, String>() {
                @Override
                protected void updateItem(String item, boolean empty) {
                    super.updateItem(item, empty);

                    if (item == null || empty) {
                        setText(null);
                        setTextFill(Color.BLACK);
                    } else {
                        setText(item);
                        setTextFill(Color.RED);
                    }
                }
            };
        });

        VBox vbox = new VBox(filterField, tableView);
        Scene scene = new Scene(vbox);
        stage.setScene(scene);
        stage.show();
    }

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

    public static class Person {
        private final SimpleStringProperty firstName;
        private final SimpleStringProperty lastName;

        public Person(String firstName, String lastName) {
            this.firstName = new SimpleStringProperty(firstName);
            this.lastName = new SimpleStringProperty(lastName);
        }

        public String getFirstName() {
            return firstName.get();
        }

        public void setFirstName(String firstName) {
            this.firstName.set(firstName);
        }

        public String getLastName() {
            return lastName.get();
        }

        public void setLastName(String lastName) {
            this.lastName.set(lastName);
        }
    }
}

在上述示例中,我们创建了一个TableView并添加了两个TableColumn,分别用于显示名字的姓和名。我们还添加了一个TextField作为过滤器,当用户在TextField中输入内容时,TableView会根据输入的内容进行过滤。

为了更改已过滤列表的字体颜色,我们使用了自定义的单元格工厂。在工厂中,我们重写了updateItem方法,在其中根据条件设置单元格的文本和字体颜色。在这个示例中,我们将已过滤列表中的字体颜色设置为红色。

这只是一个简单的示例,你可以根据自己的需求进行更复杂的定制。如果你想了解更多关于JavaFX的信息,可以访问腾讯云的JavaFX产品介绍页面:JavaFX产品介绍

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

相关·内容

Using JavaFX UI Controls 12 Table View

很多JavaFX SDK API种类为在表格表单呈现数据。在JavaFX 应用对创建表格最重要TableView, TableColumn和TableCell这三个类。...TableView getColumns方法可以获取之前创建过列。在你应用,你可以用此方法动态添加和移除表格列。...图 12-6新添加实体 列数据排序 TableView类提供了列数据排序。用户可以通过点击列头来对数据进行排序。第一次点击将进行升序排列,第二次点击将进行降序排列。第三次点击不排列。...将Map数据添加到表格JavaFX SDK 2.2开始,你可以往表格添加Map类型数据。...在例12-12,数据行 hash map(哈希map) 展现了TableView对象一个单行。

11.4K20
  • IDEA与eclipse桌面配置基础

    ,然后勾选新增maven,在配置User Settings–>选择mavensettings.xml文件EclipseJava–>Installed JREs,可以选择JRE所在目录,也可以选择...Assist自动补全#添加(表示所有字母都可以自动补全).abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ修改Ecilpse编码格式Eclipse更改警告和错误突出显示文本背景颜色...javafx.swing;requires javafx.web;requires javafx-swt;}添加eclipse创建dynamic web projectTomcat与eclipse整合...File”选择“Settings”设置页面左侧导航中选择Keymap右侧Keymaps下拉列表中选择“Eclipse”,或者其他自己习惯预设风格。...Java开发手册上规范帮我们检查代码,然后对代码做不同颜色展示,鼠标放上去,会看到提示内容,帮助开发者写出更规范代码。

    38330

    iOS15适配

    想必都看过WWDC2021Session了,Session原版视频依然是最有效get新特性渠道,iOS15多特性就不说了,我就整理了我在适配iOS15路上一些更改和调整。...,呈现是白色,字体颜色也没有生效,呈现黑色,查看导航栏特性API:UINavigationBarAppearance后发现,iOS15navigationBar相关属性设置要通过实例UINavigationBarAppearance...UITabbar tabbar问题和navigationBar问题属于同一类,tabbar背景颜色设置失效,字体设置失效,阴影设置失效问题 旧代码 ...... self.tabBar.backgroundImage...UITableView iOS15对于tableview,新增了sectionHeaderTopPadding作为列表每个部分标题上方填充,它默认值是UITableViewAutomaticDimension...,所以我们要将他设置为0,否则当我们列表设置了section高度列表会出现head高度增加情况,适配方式: ...... if #available(iOS 15, *) { tableView.sectionHeaderTopPadding

    2.3K30

    你还在用B端大模型?OUT 了!!!用混元打造专属智能化桌面应用

    同时,JavaFX 作为 Java 生态系统功能强大 UI 框架之一,凭借其丰富组件和灵活布局能力,逐渐成为构建桌面应用首选工具。...强大图形支持:可以轻松实现复杂动画和图形效果。 组件丰富:提供丰富 UI 组件,如按钮、表格、列表等,支持高自定义化界面开发。...开发环境配置 安装和配置 JavaFX 在这里提一下,Java 8 内置了JavaFX,但是从Java 9开始 JavaFX 不再包含在 JDK ,而是作为一个独立模块提供。...-fx-font-size: 14px; /* 字体大小 */ -fx-text-fill: #333333; /* 文本颜色 */ -fx-background-color: #ffffff...为了将这一响应显示到 JavaFX 界面,需要将返回文本解析并格式化为消息气泡。 在桌面应用程序,保持用户界面的流畅性是至关重要。当调用混元大模型时,可能会遇到网络延迟或响应时间较长问题。

    39231

    使用Javafx生成虚假手机号身份证号小工具

    使用Javafx生成虚假手机号身份证号小工具一、介绍在日常编码,我们需要生成一些虚假信息进行测试,其中就包括了手机号,身份证号那么如何生成这些虚假手机号,和身份证号码呢我打算用javafx来编写一个生成虚假手机号...、虚假身份证号小工具那么javafx是什么,简单说,它是一个桌面端工具包集合,用于设计、创建、调试和部署富客户端程序虽然在桌面端不吃香,但比起第一语言就是java我去学习其他语言来说,仅仅只是开发个小工具...,javafx足够了二、编码1)整体思路及页面布局我打算使用两个Tab,一个手机号、一个身份证号,来回切换在Tab内容,放入一个按钮,一个表格当我点击按钮时候,就会在表格刷新虚假数据,来进行展示表格有两列...; -fx-border-width: 1px; -fx-border-color: #999999; } ​ /* 设置选中Tab背景颜色和边框 */ .tab-pane .tab-header-area...*/ .tab-pane .tab-header-area .tab .tab-label { -fx-fill: #333333; } ​ /* 设置选中Tab文字颜色 */ .tab-pane

    20250

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

    JavaFX,控件是构建用户界面的基础,它们允许用户与应用程序进行交互。...常用来说明其他控件用途或者提供反馈信息。 常见问题与易错点 1. 样式问题 问题描述:控件样式不符合预期,例如字体颜色或大小。 解决方案: 使用CSS来定制控件外观,可以全局应用或单独设置。...检查事件处理器是否正确绑定到控件上。 3. 布局管理 问题描述:控件位置或大小不正确,导致界面混乱。 解决方案: 使用适当布局容器,如HBox, VBox, GridPane等。...通过调整布局和事件处理,你可以构建出更复杂交互逻辑。 总结 理解并熟练使用JavaFX基础控件是创建功能丰富、用户友好GUI关键。...通过实践,你可以更好地掌握这些控件用法,避免常见问题,提升你JavaFX应用开发技能。

    43410

    JavaFX 11发行说明

    介绍 以下记录描述了有关此版本重要更改和信息。在某些情况下,该说明提供了有关问题或更改其他详细信息链接。 从JDK 11开始,JavaFX模块与JDK分开提供。...新功能 以下注释描述了JavaFX 11一些增强功能。有关完整列表,请参阅发行说明末尾表格。...固定错误列表 发行密钥 概要 子组件 JDK-8203345 启用屏幕阅读器时VirtualFlow内存泄漏 无障碍 JDK-8204336 当嵌套事件循环处于活动状态时,Platform.exit...web JDK-8209049 Cherry挑选GTK WebKit 2.20.4更改 web JDK-8163795 [Windows]在本机GetScreenCapture方法删除对StretchBlt...以自定义Spinner控件步骤重复计时 控制 JDK-8177380 在ColorPicker调色板添加标准颜色 控制 JDK-8186187 修改公共API返回类型StyleConverter.getEnumConverter

    6.6K60

    常用开发技巧系列(一)

    前言:         在我们iOS开发过程,你要是知道一些特别的小技巧的话,其实是可以帮你省很多事,当然这东西也不需要我们专门去记,估计没有几个开发人员喜欢死记硬背,有需要,上网找,边学边用才是技巧正确打开方式...image.png 顺便给大家一个MAC 端GIF图录制软件:简单,粗暴 LICEcap 三:TextFile各种自定义     下面只是一个简单例子,比如它提示位置和字体颜色,效果如下..., bounds.origin.y+10, bounds.size.width-10, bounds.size.height); return inset; } //控制placeHolder颜色字体...*const NSForegroundColorAttributeName; 字体颜色 对应值是一个UIColor 对象 NSString *const NSBackgroundColorAttributeName...[self.ZXwebView.scrollView addSubview:_backHeadImageView]; //更改webBrowserViewframe向下移backHeadImageView

    853101

    Qt数据库sqlite总结

    ,不是对象.返回所有可用数据库驱动程序清单 drivers.removeAll("QMYSQL3");  //删除列表项 foreach(QString driver, drivers)  /...9,所以与之后是第一列         return qVariantFromValue(QColor(Qt::red)); //第一个属性字体颜色为红色     return value; }...ui->tableView->setModel(model); //重新定义模型,model直接从database.db数据库插入数据 //ui->tableView->setEditTriggers...//当tableview被修改后,要通过submitAll()函数进行保存  bool QSqlTableModel::submitAll (),提交所有被修改数据,然后修改数据被保存在数据库 model...在QtQSqlRelationalDelegate委托类就能实现这个功能 ui->tableView->setItemDelegate(new QSqlRelationalDelegate(ui->

    2.9K20

    JavaFX入门(四):JavaFX布局(一)

    常见一个用例场景就是,软件主界面的上面是菜单栏和工具条,左边和右边可能是文档或者内容列表或者常用工具集合,然后中间是主要内容显示区,下面是状态栏。...; -fx-font-size: 20px;" text="下" BorderPane.alignment="CENTER" /> 该FXML代码我们设置了字体...在后面我们将使用CSS样式进行字体颜色等样式设置。 3. HBox HBox可以水平排列控件,不换行。如图: ? FXML代码如下: <?...GridPane GridPane有点像HTMLTable布局,属于比较灵活布局方式。默认情况下,控件均匀分布在Grid或者说Table。但是我们可以指定一个控件所占行列,让其跨行和列分布。...在我们用SceneBuilder设计界面的时候,自动生成FXML文件实体元素和属性是和JavaFX类和属性是对应,我们可以通过FXML了解对应类一些属性和方法。

    11.7K42

    Swift - MJRefresh库使用详解1(配置,及库自带下拉刷新组件)

    mj_header.endRefreshing() } //在本例,只有一个分区 func numberOfSections(in tableView: UITableView) -> Int...,创建完成单元需重复使用 let identify:String = "SwiftCell" //同一形式单元格重复使用,在声明时注册 let cell...: IndexPath) -> UITableViewCell { //为了提供表格显示性能,创建完成单元需重复使用 let identify:String...= "SwiftCell" //同一形式单元格重复使用,在声明时注册 let cell = tableView.dequeueReusableCell(withIdentifier...不同状态,我们都可以设置一个图片数组,MJRefresh 就会自动播放这几张图片,形成动画。 其中下拉过程图片是根据下拉距离自动改变。

    5.8K31

    JavaFX-TableView详解

    先看看TableView中有些什么 在IDEA,按住Ctrl然后点中TableView关键字会自动跟进到它定义地方,我们可以先看看这里面到底都有些什么东西。.../blog/2015/04/doc03_tableview/ 官方文档:http://docs.oracle.com/javafx/2/ui_controls/table-view.htm TableView...TableViewObservableList集合 } }); 添加行删除行也是同样操作,可以直接修改TableView维护集合来完成。...增加列,删除列 这就不仅仅要删除集合数据,还要从表格里面的Columns集合删除相应数据才可以,或许你还会在删除和增加中加入一定判断来保证操作正确性: table.getColumns()....add(tempCol); // 列表显示新增列 table.getColumns().remove(index); // 删除index位置列 监听列变化 你大可以选择向源文件那样

    3.4K60

    Cycling 74 Max for Mac(mac音乐可视化编程软件)

    •jit.mo:添加到标准Max发行版live.comment:新对象-文本颜色遵循实时界面颜色MC:initialbusystate属性,将默认繁忙状态设置为零,以避免CPU使用率过高Pattrstorage...:按下箭头键可按预期工作数据库:修复了缺少“盒”字典修补程序时崩溃调试:正确绘制了各种尺寸窗口dict.view:修复了问题并可能因字典显示而崩溃expr:随机不再产生-1偏移量(Win)字体:...live.text:修复了更改图片属性时发生崩溃Mac OS:10.15 Catalina支持映射:所有条目正确显示在窗口中映射:修复删除条目的问题最大控制台:修复了删除发布对象后崩溃实时设备最大值...:活动主题边框颜色实时相量最大值:@lock 1不会降级Max for Live:修复了打开大量文件时编辑设备时崩溃问题Max for Live:修复了带有浮点参数错误,例如sprintf错误...pattrstorage:修复双重加载文件时崩溃播放列表〜/ jit.playlist:总是出现循环按钮戳戳:防止大小为零缓冲区poly〜/ thispoly〜以正确顺序输出声音打印:不再在列表消息之前添加空格模板

    2.8K40

    iOS-QQ音乐播放器简单实现

    CLMusicTool工具类提供方法用来初始化音乐列表将plist文件转化为Model,并存储到数组,获取所有音乐数组,以及设置默认播放音乐 static NSArray *_musics; static...方法创建并初始化tableView, 在layoutSubviewstableView进行一些设置。...和字体等进行设置。...首先歌词显示在自定义CLLrcViewtableView,所以给CLLrcView添加lrcName歌词文件名字属性,用来接收歌词文件名字,然后重写setLrcName:方法根据歌词名获得歌词并对歌词进行一些处理...将第i行移动到屏幕中央,然后将第i行记录下来,更新第i行,回到tableView:tableView cellForRowAtIndexPath:方法判断如果是第i行则将lable字体放大,如果不是则改为原来

    2.8K130

    iOS UITableView左滑操作功能实现(iOS8-11)

    ,及如何自定义左滑标题颜色字体大小。...考虑到代码可复用性,自定义左滑操作字体大小和颜色代码不写在viewController,而是写在UITableView和UITableViewCellCategory,对外提供editActionTitleColor...categoryhook掉layoutSubviews方法,找到UITableViewCellDeleteConfirmationView子view button,设置字体颜色和大小。...,所以我们可以在UITableViewcategoryhook掉layoutSubviews方法,找到UISwipeActionPullView子view button,设置字体颜色和大小。...] 2、问题原因分析 当左滑一个cell后,直接操作左滑另一个cell,这个时候tableView上会有两个UISwipeActionPullView,此时tableView部分view层级如下图所示

    1.7K80
    领券