首页
学习
活动
专区
工具
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 相关产品和产品介绍链接地址

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

相关·内容

  • 设置pycharm背景颜色_python设置背景颜色

    PyCharm颜色设置选择主题和背景图片 选择字体、修改字体大小 新建颜色主题 修改背景颜色 修改注释颜色 File  –>  Setting  (Ctrl + Shift + S) 1、选择不同的主题...、选择背景图片            Appearnce & Behavior  –>  Appearance 2、字体                        Editor  –>  Font...3、建立属于自己的颜色主题               Editor  –>  Color Scheme 自带几种颜色主题,选择一个自己比较中意的,然后点击旁边的齿轮 也可以就在它里面修改一些颜色,颜色不一样的主题...,代表自己进行过一些更改的主题,不满意的时候,可以恢复默认设置 选择Duplicate,建立属于自己的主题,如果自己各方面调的很满意,可以导出自己的主题保存,换新装备时,直接导入使用就可以了 4、修改背景颜色...Scheme  –>  Python  –>Line Comment 这里面还能设置其它代码的颜色(变量名、方法名、符号…),根据自己的喜好自行设置 成长离不开与优秀的伙伴共同学习,如果你需要好的学习环境

    3.8K30

    Qt设置窗口背景颜色

    通过使用QPalette调色板设置后置背景颜色。...其他方式设置背景颜色 重载绘图事件设置背景颜色 void Widget::paintEvent(QPaintEvent *) { QPainter p(this); p.setPen(Qt...::NoPen); /* 设置红色 */ p.setBrush(Qt::red); p.drawRect(rect()); } 样式表设置背景颜色,设置样式表的background-color...关于上述背景颜色方法使用的理解 设置背景有两个图层面设置方法,一种是前置背景(绘图事件,样式表),另外一种是后置背景(调色板)。...绘图事件与样式表不能同时设置,而后置(调色板)背景颜色设置不会被其他方法干扰。 纯QSS美化界面优先使用样式表设置背景颜色。 绘图事件设置背景颜色损耗性能,优先建议使用调色板设置背景颜色。

    7.1K10

    css颜色介绍和背景设置

    现在美丽网页的设计图中颜色五花八门的,网页模块中漂亮背景图也很多,网页中颜色和背景设置必不可少,接下来我们就先学颜色是如何表达的,要知其然,知其所以然。...举例: #ff0000 红色 #ffff00 黄色 #ffffff 白色,也可以将两个相同值合并,如#fff白色 #000黑色 6.颜色名称:tomato,orange, gray 如何设置背景颜色...举例:给网页设置红色背景。...50% ) } 或 body{ background-color:red | #ff0000 | rgb(255,0,0) | rgba(255,0,0,0) | hsl(0,100%,50% ) } 如何设置背景图片...fixed固定背景图;scroll跟随页面滚动*/ body{ background-color:red;/*背景颜色设置为红色,背景图覆盖不完全的时候,剩余的有背景颜色填充*/ background-image

    1.8K40

    【CSS】CSS 背景设置 ① ( 背景颜色 | 背景图片 | 背景平铺 )

    文章目录 一、背景颜色 1、语法说明 2、代码示例 二、背景图片 1、语法说明 2、代码示例 三、背景平铺 一、背景颜色 ---- 1、语法说明 CSS 的背景颜色样式语法 : 默认的背景颜色是...target="_blank"/> /* 设置背景颜色 */ .background { width: 200px; height: 200px; background-color...: white; /* 背景图片设置 1...., 使用的图片像素是 200x200 像素 , 设置到 200x200 的盒子中 , 正好充满整个背景 ; 但是如果设置到 400x400 像素的盒子中 , 就会出现如下样式 , 背景会重叠展示多个...; 通过设置 background-repeat 属性 , 可以设置平铺效果 ; 默认平铺样式 : background-repeat: repeat; , 背景在 X 和 Y 轴方向上平铺 ;

    6K20

    给intellij IDEA设置背景颜色

    设置背景颜色有两种方法,接下来我给大家介绍一下 对了设置背景的时候一定要记住你设置的背景图片所在位置(如图) 第一种方法: 先打开intellij IDEA 之后在File再点Settings...这个弹窗里进行背景的设置 下面我圈的地方都要弄。...具体意思是Opacity是背景颜色的深浅,在这下面的两个正方形的选择是对页面布局大小设置,This project only 是仅在这一个项目进行背景的设置(也就是只在这一个项目中显示背景),千万记得在最后点击...ok 另一个方法是在Help这个位置找到Find Action之后双击点进去 点进去之后在搜索框中输入Set Background Image,点击下面出现的黄色位置 就这样就会进入到背景颜色...(图片)的设置位置,接下来的步骤跟上一个一样(同上) 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129058.html原文链接:https://javaforall.cn

    1.8K20
    领券