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

Java 如何设置jtable中目标单元格的背景色?,java,swing,jtable,Java,Swing,Jtable,我不想为jtable中的所有单元格设置背景色,只想设置我选择的单元格。我该怎么做呢?您需要使用您需要使用您可能会发现中介绍的概念更容易实现。可能保留一组点(表示要着色的单元格)。甚至可能是一张点和颜色的地图。您可能会发现中介绍的概念更容易实现。可能保留一组点(表示要着色的单元格)。甚至可能是点和颜色的贴图。您需要创建一个自定义CellRenderer,并在自定义JTable的getCellRenderer(int col,int rol)方法中调用它 请参阅以获取一个好的示例。您需要创建一个自定

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

您需要使用

您需要使用

您可能会发现中介绍的概念更容易实现。可能保留一组点(表示要着色的单元格)。甚至可能是一张点和颜色的地图。

您可能会发现中介绍的概念更容易实现。可能保留一组点(表示要着色的单元格)。甚至可能是点和颜色的贴图。

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


请参阅以获取一个好的示例。

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

    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);
                        }
                    });
        };
    });