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

时间:2010-03-03 05:37:50

标签: java swing jtable

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

4 个答案:

答案 0 :(得分:3)

您需要使用custom renderer

答案 1 :(得分:2)

您可能会发现Table Row Renderering中提供的概念更容易实现。也许保留一组点(代表你想要着色的单元格)。或者甚至可能是点和颜色的地图。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

请参阅http://self-reference.com/tech/swing.html以获得一个好例子。