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

在TableView中更改TableColumn背景,同时保留交替的行颜色?

在TableView中更改TableColumn背景,同时保留交替的行颜色,可以通过自定义单元格工厂来实现。

首先,创建一个自定义的TableCell类,继承自TableCell,并重写updateItem方法。在updateItem方法中根据需要设置TableColumn的背景颜色。同时,根据行号的奇偶性设置交替行的颜色。

代码语言:txt
复制
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.paint.Color;

public class CustomTableCell<S, T> extends TableCell<S, T> {
    @Override
    protected void updateItem(T item, boolean empty) {
        super.updateItem(item, empty);

        if (empty || item == null) {
            setText(null);
            setGraphic(null);
            setBackground(null);
        } else {
            setText(item.toString());
            setGraphic(null);

            // 设置TableColumn的背景颜色
            TableColumn<S, T> tableColumn = getTableColumn();
            tableColumn.setStyle("-fx-background-color: #F0F0F0;");

            // 设置交替行的颜色
            TableView<S> tableView = getTableView();
            int rowIndex = getIndex();
            if (rowIndex % 2 == 0) {
                setBackground(null);
            } else {
                setBackground(null);
            }
        }
    }
}

然后,在TableView中使用自定义的TableCell类作为单元格工厂。可以通过setCellFactory方法来设置。

代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;

public class TableViewExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        TableView<Person> tableView = new TableView<>();

        TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
        nameColumn.setCellValueFactory(cellData -> cellData.getValue().nameProperty());

        TableColumn<Person, Integer> ageColumn = new TableColumn<>("Age");
        ageColumn.setCellValueFactory(cellData -> cellData.getValue().ageProperty());

        // 设置单元格工厂
        nameColumn.setCellFactory(column -> new CustomTableCell<>());
        ageColumn.setCellFactory(column -> new CustomTableCell<>());

        tableView.getColumns().addAll(nameColumn, ageColumn);

        // 添加数据
        tableView.getItems().addAll(
                new Person("John", 25),
                new Person("Jane", 30),
                new Person("Bob", 35)
        );

        primaryStage.setScene(new Scene(tableView, 400, 300));
        primaryStage.show();
    }

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

这样,就可以在TableView中更改TableColumn的背景颜色,同时保留交替的行颜色。请注意,以上示例中的CustomTableCell类只是一个简单的示例,您可以根据实际需求进行修改和扩展。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云物联网平台(IoT Explorer):https://cloud.tencent.com/product/ioe
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云移动开发(移动推送、移动分析、移动测试等):https://cloud.tencent.com/product/mobile
  • 腾讯云音视频服务(VOD、直播、短视频等):https://cloud.tencent.com/product/vod
  • 腾讯云安全产品(DDoS 高防、Web 应用防火墙等):https://cloud.tencent.com/product/saf
  • 腾讯云元宇宙解决方案:https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 目录内文件名导出到Excel文件

    1、打印文件夹列表时可以包含其他列。 2、打印文件列表时,可以包含标准文件信息,如文件名,扩展名,类型,所有者和属性以及可执行文件信息(EXE,DLL,OCX),如文件版本,描述,公司等。 3、此外,还可列出音轨,标题,艺术家,专辑,流派,视频格式,每像素位数,每秒帧数,音频格式,每通道位数等多媒体属性(MP3,AVI,WAV,JPG,GIF,BMP)。 4、您可以打印的另一组列是 Microsoft Office 文件(DOC,XLS,PPT),因此您可以查看文档标题,作者,关键字等,而无需逐一打开这些文件。 5、对于每个文件和文件夹,还可以获取其CRC32,MD5,SHA-1和Whirlpool哈希码,以便您可以验证该文件未被修改。 6、打印文件夹中的文件进一步自定义。 7、大量的选项允许您完全自定义输出的外观。您可以设置文件和文件夹的排序方式,以便随时显示它们。您可以定义列顺序,以便最重要的列立即可见。国际显示格式选项允许您根据当地需要调整输出。列表可以包含指向实际文件和目录的链接,这样您就可以将列表放在具有可点击内容的网页上。 8、HTML显示样式完全自定义 – 您可以更改背景颜色,标题,目录行,奇数和偶数文件行以及周围框架的单独样式。 9、您可以通过对文件名,日期,大小或属性应用过滤器来限制文件列表。 10、目录Lister Pro也可以集成到Windows资源管理器的上下文菜单中,因此您甚至不需要打开应用程序即可生成列表。 11、命令行界面支持可以从 Windows任 务计划程序运行的自动化列表。 12、检查文件夹大小或查找大文件夹 13、使用 Directory Lister Pro,您还可以找出给定的目录大小,按文件夹大小进行分类,并检查哪些文件夹占用了磁盘上的最多空间。您还可以使用尺寸过滤器选项在PC上找到最大的文件。

    03
    领券