首页
学习
活动
专区
工具
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
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

macOS开发之NSTableView应用详解

二、构建一个简单列表视图     首先新建一个测试工程,ViewController.m文件编写如下代码: #import "ViewController.h" @interface ViewController...需要注意,如果只实现这两个方法,则NSTableView会自动从列对象NSTableColume取具体视图,通过dataCellForRow方法。...如果我们要对Cell渲染进行一些定制,可以如下方法实现: //将要渲染cell调用方法 开发者可以拿到cell对象做定制 - (void)tableView:(NSTableView *)tableView...Cell,如果实现了这个方法,则TableView不会再从NSTableColumn对象拿Cell实例: //返回自定义Cell实例 /* 需要注意,这个方法第一次调用时候 tableColumu...六、NSTableRowView解析     NSTableRowView用在View-BaseTableView,其作为容器存在。

4.7K21

Jekyll-Admin-Mac 开发纪要-左侧菜单栏

⚠️我们发现我们图片是正常显示出来了,但是背景颜色无法显示。那是因为 OSX开发和 iOS不太一样。对于正常 NSView, NSImageView是无法进行设置背景颜色。...Xcode6使用IBDesignable创建自定义控件(翻译) 关于如何 NSView自定义背景颜色参考下面的连接 我们设置 NSView为继承与 BaseView 背景颜色试图。...但是到目前来说我们几乎达到显示 Logo,但是我们背景颜色设置白色不是我们所希望,我们设置默认为透明颜色。 我们还发现我们我们试图并没有达到我们设置约束大小。...我们发现我们刚才创建 NSTableView显示背景颜色是白色,我们可以关闭 NSScrollView绘制背景颜色和设置 NSTableView背景颜色为透明即可。 ?...tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?

2.1K10

Using JavaFX UI Controls 12 Table View

很多JavaFX SDK API种类为表格表单呈现数据。JavaFX 应用对创建表格最重要TableViewTableColumn和TableCell这三个类。...列通过TableColumn这个类创建。 TableView getColumns方法可以获取之前创建过列。在你应用,你可以用此方法动态添加和移除表格列。...图 12-4 表格数据填充 添加新 图标12-4表格包好5数据,目前为止还不能编辑。...用户可以对表格多列进行排序,同样也可以指定每列数据排序操作优先级。如果想多行排列,用户按住Shift同时点击想要排序每一列列头。...例12-12,数据 hash map(哈希map) 展现了TableView对象一个单行。

11.3K20

JavaFX-TableView详解

先看看TableView中有些什么 IDEA,按住Ctrl然后点中TableView关键字会自动跟进到它定义地方,我们可以先看看这里面到底都有些什么东西。...列两种数据形式: 一种是维护类TableColumn类型,列每一个数据都是一个类(这里是一个Person类),而String类型对应列名。...("检测到改变"); // 这里修改维护对应设置进TableViewObservableList集合 } }); 添加行删除也是同样操作,可以直接修改TableView维护集合来完成...增加列,删除列 这就不仅仅要删除集合数据,还要从表格里面的Columns集合删除相应数据才可以,或许你还会在删除和增加中加入一定判断来保证操作正确性: table.getColumns()....add(tempCol); // 列表显示新增列 table.getColumns().remove(index); // 删除index位置列 监听列变化 你大可以选择向源文件那样

3.4K60

用 Table SwiftUI 下创建表格

具有列( Row )特征 List Table 定义,具备明确( Row )与列( Column )概念。...,更习惯于将数据元素以( Row )形式进行展示( 显示数据不同属性内容 ) Table 数据是懒加载视图( TableColumn onAppear 和 onDisappear...列宽与高 列宽 Table ,我们可以列设定设置列宽: Table(localeInfos) { TableColumn("标识符", value: \.identifier)...开发者可以通过 frame 修饰符来更改单元格内容对齐方式( 暂时无法更改标题对齐方式 ): TableColumn("货币代码") { Text($0.currencyCode)...同时也盼望苹果能在接下来版本改善 Table Xcode 开发效率,并为 Table 添加更多原生功能。 希望本文能够对你有所帮助。

3.9K30

Java Swing JTable

使用专门渲染器和编辑器。 JTable仅使用整数来引用它显示模型和列。 JTable只是采用表格形式单元格范围,并在绘制过程中使用getValueAt(int,int)从模型检索值。...table.convertRowIndexToModel(selection [i]); } //现在根据基础TableModel进行选择 默认情况下,如果启用了排序,则JTable将根据排序模型保留选择和可变高...: // 设置内容字体 void setFont(Font font) // 设置字体颜色 void setForeground(Color fg) // 设置被选中行前景(被选中时字体颜色)...void setSelectionForeground(Color selectionForeground) // 设置被选中背景 void setSelectionBackground(Color...这是一个重要区别,因为当用户重新排列表列时,视图中给定索引处列将发生变化。同时,用户操作永远不会影响模型列顺序。 ?

4.9K10

iOS点击TableViewcell显示弹出动画

cell还亮着,然后有一点点放大效果,同时cell界面慢慢变成纯白色,最后上下炸开进入内容界面,其实仔细想想,这个和3D Touchpeek效果前奏不是很像嘛。...方法,代码如下: #pragma mark TableView Delegate // 选中某一 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath...:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES];// 选中后取消选中颜色...,我们来拆分一下,整个动画分为三个过程: 第一个过程是加阴影,新创建一个对应cell显示出来,动画中稍微增大cell凸显效果,同时有一个纯白视图慢慢覆盖cell视图; 第二个过程是炸开纯白视图,动画中将其大小设为整个屏幕大小...要注意是我们不能直接使用点击到cell位置,经测试直接用他原点会变成(0, 0),也就是出现在左上角,我也不知道为什么,所以这里要先获取对应区域来更改cell范围并作为纯白view范围。

1.4K10

用这些 iOS 技巧让你 APP 性能更佳

如果不使用可复用 tableViewCell ,我们必须为每一创建一个新 tableViewCell,如下所示: func tableView(_ tableView: UITableView,... Simulator 显示各种图层颜色 当选择 Color Blended Layers 选项后,你可以看到一些视图是红色,一些是绿色。...红色表示视图不是不透明,并且其显示是在其后面混合图层。绿色表示视图不透明且未进行混合。 ? 尽可能为 UILabel 指定非透明背景颜色以减少颜色混合图层。...许多 label 以红色突出显示,因为它们背景颜色是透明,导致 iOS 通过混合背后视图来计算背景颜色。...这很可能是因为应用程序主线程上运行繁重计算任务。 主线程通常在 UIKit 任务(如处理用户输入)和一些间隔很小轻量级任务之间交替

3.2K30

iOSTableView小技巧

1、去除多余列表线条 原始TableView没有数据也会显示一条条线条,不太美观,用一代码可以解决,一般放在ViewDidLoad self.tableView.tableFooterView...= [[UIView alloc] init]; 2、选中列表条目后取消选中背景颜色 不处理情况下,选中一后,该行会保持被选中背景色,一般我们不希望其保持,而是一闪而过告知用户选中过就好了...,TableViewDelegate方法实现: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath...滑动列表时收起键盘 一般列表都会伴随着搜索框或其他输入框,我们输入时弹出键盘,但是滑动列表时就表示我已经输入完毕了,不希望键盘保持界面上,而是自动收起,同样是TableViewDelegate方法实现...我们想要获取或者修改cell信息时,往往需要获取cell,tableviewdelegate,我们一般只能获取到indexPath这个参数,通过以下方法可以获取到对应cell: UITableViewCell

94630

QTableView基本用法讲解,Qt表格控件使用方法

QTableView是Qt中用来把数据集以表格形式提供给用户一个控件,它与C++BuilderDBGrid作用类似。坦白说,DBGrid使用要比QTableView更容易一些。...但QTableView使用麻烦同时,也提供了更多灵活性。   ...ui->tableView->setColumnWidth(1,102); 复制代码  注:进行表格设置时必须是“ui->tableView->setModel(model);”在前,属性具体设置在后...:   一个药品划价模块中有这样操作流程:   检索处方项目成功后,把该项目显示到QTableView里,把需要编辑数量字段提供给用户输入,用户输入确认后,该项目留在列表,然后开始下一项目检索录入...实现过程如下:   录入项目保留在临时表tmp,界面上QTableView取名为tbList,与tbList关联Model取名为tb1。

14.4K20

iOS开发-1.UITableView你会用吗?

Paste_Image.png 每一高度也可以这样设置— self.tableView.rowHeight = 100; 当时上面的高度方法可以搞定不一样cell高度设置 这里引出一个估计cell...Paste_Image.png 选中cell,点击重用标识 这样代码,就可以省略掉:那个判断语句:if(cell== nil){创建cell方法} 以后tableView开发一个cell ?...Paste_Image.png 系统自带方法:只能控制cell颜色选中为灰色,或者没有。iOS6之前是可以实现 ?...Paste_Image.png 如果想自定义选中cell背景颜色:(也可以设置图片,UIImage等等,都可以设置) ?...Paste_Image.png 如果设置不选中cell背景颜色(两种方法) cell.backGroundColor = [UIColor redColor]; 另一种设置方法cell.backgroundView

81430

【IOS开发基础系列】下拉刷新专题

1 UIRefreshControl实现 1.1 使用范围         如果你装了xcode_4.5_developer_preview,那么UITableViewController.h文件你会看到...这里介绍一种同时集成下拉及上拉功能库:https://github.com/emreberge/EGOTableViewPullRefresh。         ...• 配置简单, 箭头头像,背景颜色和文本颜色都能通过PullTableView类属性很容易更改。     • 上拉加载更多数据功能在Table底部。     ...上tableView上 2.4.4 配置视图控制器和页脚EGOTableViewPullRefreshDemoViewController.m     • .m文件添加下面代码 #pragma mark...,ViewDidLoad()方法里面添加下面代码(比如 修改刷新和上拉背景色箭头头像等) self.pullTableView.pullArrowImage = [UIImage imageNamed

17530

java swing 添加 jcheckbox复选框

运行后,窗体屏幕左上角显现并且是最小化形式。那么关于设置窗体显示就不再赘述了,值得注意是窗体布局必须设置。...而一般情况使用JTable(Vector rowData,Vector columnNames)       Java方法,如果参数需要传递接口,可以调用方法时传递一个(匿名)对象,该对象是一个不具名实例...详细说明之前先解释一下JTable显示原理:       首先是数据来源,您使用JTable构造方法,大部分重载参数即包含了数据,比如JTable(VectorrowData, Vector columnNames...77 77 ck.setSelected(isSelected); 78 //设置背景颜色 这里是设置jcheckbox...背景颜色 直接设置为透明,我这里是用了一种明暗交替颜色转换,所以背景颜色设置了一下 79 ck.setOpaque(false)

3.3K00
领券