首页
学习
活动
专区
工具
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.3K20

Creo教程:如何使用SQLite在Creo创建日记应用?

如何通过表视图管理数据列表 让我们回到Window1容器,该容器应包括3个区域:标头,插入新日志行方式以及添加日志行列表。 创建一个自定义标题 这很容易,而且我们之前已经做到了。...然后,我们将标签居中,将其字体更改为更好字体(Bradley Hand呢?),将其稍微扩大一点,修复其左,右,底部约束,然后让它水平自动调整大小。...让我们保存它,然后将焦点TableView1再次移至该位置。查看对象检查器,我们现在看到SQLiteDatabase1.Query1在数据集属性列表。...注意:在此期间,我还更改了后退按钮颜色字体,使其更加整洁。 现在,我们可以在CreoPlayer或模拟器运行该应用程序,将一些快乐时刻添加到我们列表,然后逐一进行导航。...如何从数据库删除记录 要与iPhone上列表记录进行交互,我们习惯于向左或向右滑动记录,并显示默认操作-在我们情况下为删除。 好吧,使用Creo获得这种行为真的很容易。

5.2K30

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开发手册上规范帮我们检查代码,然后对代码做不同颜色展示,鼠标放上去,会看到提示内容,帮助开发者写出更规范代码。

30530

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

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

常用开发技巧系列(一)

前言:         在我们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

814101

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

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

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.7K40

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.4K31

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

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

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

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

来自 Murali Billa JavaFX技术人员主要成员 在此博客,我们将研究JavaFX如何渲染网页以及负责该网页组件-即WebView JavaFX是: 用于创建和交付可在多种设备上运行桌面应用程序以及富...JavaFX主要功能: WebView:一个Web组件,使用WebKit HTML技术可以将网页嵌入JavaFX应用程序。...JavaFX添加了对其他HTML5功能支持,包括Web套接字,Web Worker和Web字体,以及打印功能。...构成嵌入式浏览器类位于javafx.scene.web包。...要跟踪进度和/或取消作业,我们可以使用getLoadWorker()  方法 可用  Worker实例  。 以下示例在成功完成加载时更改阶段标题: 5.

9.9K41

NavigationBar&tabBar调色那些事儿1. 导航栏调色那些事儿2. 标签栏TableBar那些事儿

blueColor]; 1.2 改变 NavigationBar 字体颜色 NavigationBar 上面有两处可以改变字体颜色,一是标题,二是左右按钮文字。...iOS7以后,status bar 背景颜色变成了透明色,而且系统会根据 app颜色自动改变 status bar 字体颜色(黑和白)。...但是这个自动改变字体颜色并不一定和所有的 app 都搭配,比如我们 app 主题色是稍微浅一丢丢蓝,但是系统匹配 status bar 字体颜色就是黑色,看起来就很不爽,所以就要强制将其改为白色...,需要隐藏整个 StatusBar,方法如下: 状态栏高度是20 方法一: 和改变 StatusBar 颜色一样,在 Info.plist Information Property List 添加一个...如果是YES,就带了毛玻璃效果,tableView就从屏幕左上角开始了。

1.5K50
领券