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

如何设置单元格背景颜色(JavaFX、tableview)

在JavaFX中,设置单元格背景颜色可以通过使用自定义的单元格工厂(TableCellFactory)来实现。以下是一个完整的示例代码:

代码语言:txt
复制
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.cell.PropertyValueFactory;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Callback;

public class CellBackgroundExample extends Application {

    public static class Person {
        private final SimpleStringProperty name;
        private final SimpleStringProperty age;

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

        public String getName() {
            return name.get();
        }

        public void setName(String name) {
            this.name.set(name);
        }

        public String getAge() {
            return age.get();
        }

        public void setAge(String age) {
            this.age.set(age);
        }
    }

    @Override
    public void start(Stage primaryStage) {
        TableView<Person> tableView = new TableView<>();
        ObservableList<Person> data = FXCollections.observableArrayList(
                new Person("John", "25"),
                new Person("Jane", "30"),
                new Person("Mike", "35")
        );
        tableView.setItems(data);

        TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
        nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
        TableColumn<Person, String> ageColumn = new TableColumn<>("Age");
        ageColumn.setCellValueFactory(new PropertyValueFactory<>("age"));

        tableView.getColumns().add(nameColumn);
        tableView.getColumns().add(ageColumn);

        ageColumn.setCellFactory(new Callback<>() {
            @Override
            public TableCell<Person, String> call(TableColumn<Person, String> param) {
                return new TableCell<>() {
                    @Override
                    protected void updateItem(String item, boolean empty) {
                        super.updateItem(item, empty);

                        if (item == null || empty) {
                            setText(null);
                            setStyle("");
                        } else {
                            setText(item);

                            int age = Integer.parseInt(item);
                            if (age < 30) {
                                // 设置背景颜色为红色
                                setBackground(Color.RED);
                            } else {
                                // 设置背景颜色为绿色
                                setBackground(Color.GREEN);
                            }
                        }
                    }
                };
            }
        });

        StackPane root = new StackPane(tableView);
        primaryStage.setScene(new Scene(root, 300, 200));
        primaryStage.show();
    }

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

这个例子创建了一个包含姓名和年龄的表格,根据年龄的不同设置了不同的背景颜色。如果年龄小于30岁,单元格的背景将被设置为红色,否则为绿色。

注意,在这个例子中,我们通过使用TableCell的setStyle方法设置了单元格的背景颜色。如果需要其他自定义样式,可以根据需要使用CSS样式。

更多关于JavaFX的信息和相关产品介绍,你可以访问腾讯云官方网站的JavaFX相关页面: JavaFX 相关产品和产品介绍链接地址

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

相关·内容

  • html表格基础及案例示图代码。[通俗易懂]

    列表标签 有序列表:标签

      type=””>属性值有A,a,I,i,1 start=”“> 属性值为数字 有序列表的列表项
    1. 无序列表:标签
        type=””>属性值有disc circle square 无序列表的列表项
      • 自定义列表:标签
        列表的标题
        ;列表的列表项 表格标签 表格的属性
        背景颜色
        边框
        背景
        宽度
        单元格与单元格之间的距离
        单元格与字体之间的距离
        高度
        对齐,值:left right center
        边框颜色 表格的表头标签。具有表格的行 bgcolor 背景颜色 backgroung 背景 height 高度 align 行的水平对齐方式 值有 right left center valign 行的垂直对齐方式 值有 top bottom middle
        的所有属性默认加粗居中
        单元格 bgcolor 背景颜色 backgroung 背景图片 width 宽度 height 高度 align 单元格的水平对齐方式 ralign 单元格的垂直对齐方式 rowspan 合并行(垂直合并) colspan 合并列(水平对齐方式) 表格 表格是用来展示数据的 width 和 height 一般只写一个另一个会等比例改变 表格标签 表格的属性
        背景颜色
        边框
        背景
        宽度
        单元格与单元格之间的距离
        单元格与字体之间的距离
        高度
        对齐,值:left right center
        边框颜色 表格的表头标签。具有表格的行 bgcolor 背景颜色 backgroung 背景 height 高度 align 行的水平对齐方式 值有 right left center valign 行的垂直对齐方式 值有 top bottom middle (与的功能完全一样)

        01

        .NET Core使用NPOI导出复杂,美观的Excel详解

        这段时间一直专注于数据报表的开发,当然涉及到相关报表的开发数据导出肯定是一个不可避免的问题啦。客户要求要导出优雅,美观的Excel文档格式的来展示数据,当时的第一想法就是使用NPOI开源库来做数据导出Excel文档(当时想想真香,网上随便搜一搜教程一大堆),但是当自己真正的实践起来才知道原来想要给不同的单元格设置相关的字体样式、边框样式以及单元格样式一个简单的样式需要写这么多行代码来实现。作为一个喜欢编写简洁代码的我而言肯定是受不了的,于是乎提起袖子说干就干,我自己根据网上的一些资料自己封装了一个通用的NPOI导出Excel帮助类,主要包括行列创建,行内单元格常用样式封装(如:字体样式,字体颜色,字体大小,单元格背景颜色,单元格边框,单元格内容对齐方式等常用属性),希望在以后的开发中能够使用到,并且也希望能够帮助到更多有需要的同学。

        01
        的所有属性默认加粗居中
        单元格 bgcolor 背景颜色 backgroung 背景图片 width 宽度 height 高度 align 单元格的水平对齐方式 ralign 单元格的垂直对齐方式 rowspan 合并行(垂直合并) colspan 合并列(水平对齐方式) 列表标签 有序列表:标签
          type=””>属性值有A,a,I,i,1 start=”“> 属性值为数字 有序列表的列表项
        1. 无序列表:标签
            type=””>属性值有disc circle square 无序列表的列表项
          • 自定义列表:标签
            列表的标题
            ;列表的列表项 图像:图像标签 图片的路径 图片的高度 <img heigh

            03
          •           //标题单元格(表头)      //普通单元格 .......
            编号姓名 年龄
            001张三 23
            table标记的属性: border:表格边框                        值:数字 align:表格在网页中的水平方向

            03

            DataFrame表样式设置(一)

            我们知道Excel功能很强大,Python与Excel交互也有很多现成的模块可以用,主要有xlrd、xlwt、openpyxl、xlsxwriter这四种可以用,这些模块可以很好地通过Python实现Excel的功能,但是这些模块有一个不太方便的地方就是针对每一个单元格的行列位置去操作的,每次使用都很麻烦,不像DataFrame那样可以针对行列去进行操作。DataFrame虽然操作便利,但是DataFrame又有个不如意的地方就是不能针对表去进行设置格式(字体颜色、大小之类的),所以有的时候为了可以设置表的格式还是需要用那几个比较麻烦的 Excel模块。直到我遇到了StyleFrame模块,这个模块是把Pandas和openpyxl进行了结合,让你既可以享受DataFrame的操作便利,又可以轻松利用openpyxl进行表格样式设置。

            03
            领券