如何设置jtable中目标单元格的背景颜色?

发布于 2024-08-24 08:45:05 字数 58 浏览 3 评论 0原文

我不想为 jtable 中的所有单元格设置背景颜色,而只想为我选择的单元格设置背景颜色。我该怎么做呢?

I don't want to set the background color for all the cells in the jtable, just the ones I choose. How do i go about doing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

ι不睡觉的鱼゛ 2024-08-31 08:45:05

您需要使用 自定义渲染器

you need to use a custom renderer

-黛色若梦 2024-08-31 08:45:05

您可能会发现表格行渲染中提出的概念更容易来实施。也许保留一组点(代表您想要着色的单元格)。或者甚至是点和颜色的地图。

You might find the concept presented in Table Row Renderering easier to implement. Maybe keep a Set of Points (representing a cell you want to color). Or maybe even a Map of Points and Colors.

榆西 2024-08-31 08:45:05
    final JTable table = new JTable(tableModel);
    table.getTableHeader().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent mouseEvent) {
            int selectedHeader = table.convertColumnIndexToModel(table
                    .columnAtPoint(mouseEvent.getPoint()));

            table.getColumn(table.getColumnName(selectedHeader))
                    .setCellRenderer(new DefaultTableCellRenderer() {
                        public void setBackground(Color c) {
                            super.setBackground(Color.blue);
                        }
                    });
        };
    });
    final JTable table = new JTable(tableModel);
    table.getTableHeader().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent mouseEvent) {
            int selectedHeader = table.convertColumnIndexToModel(table
                    .columnAtPoint(mouseEvent.getPoint()));

            table.getColumn(table.getColumnName(selectedHeader))
                    .setCellRenderer(new DefaultTableCellRenderer() {
                        public void setBackground(Color c) {
                            super.setBackground(Color.blue);
                        }
                    });
        };
    });
怪我太投入 2024-08-31 08:45:05

您需要创建一个自定义 CellRenderer 并在自定义 JTable 的 getCellRenderer(int col, int rol) 方法中调用它。

请参阅 http://self-reference.com/tech/swing.html 了解很好的例子。

You'll need to create a custom CellRenderer and call it in your custom JTable's getCellRenderer(int col, int rol) method.

See http://self-reference.com/tech/swing.html for a good example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文