将文本背景颜色添加到JTable列

时间:2010-12-23 10:59:05

标签: swing jtable

我的动机是希望在表格单元格中看到尾随空格。例如,如果单元格包含“Foo Bar”,我想在“Bar”之后看到空格字符。有没有办法改变文本背景颜色,以便我可以在JTable单元格中轻松查看所有字符?我希望在整个专栏中这样做。

2 个答案:

答案 0 :(得分:0)

尝试修改列i的单元defaulttablecellrenderer中的组件。 我认为arg4和arg5是表的行和列,所以你也可以在这里控制单元格的渲染器。

    JTable table = new JTable();
    table.getColumn(i).setCellRenderer(new DefaultTableCellRenderer() {
        @Override
        public Component getTableCellRendererComponent(JTable arg0, Object arg1,
                boolean arg2, boolean arg3, int arg4, int arg5) {
            Component component = super.getTableCellRendererComponent(arg0, arg1, arg2, arg3, arg4, arg5);
            // modify this component here
            // component.setForeground(Color.black.black);
            // component.setBackground(Color.black.black);
            return component;
        }
    });

答案 1 :(得分:0)

    final JTable table = new JTable(tableModel);
    table.setPreferredScrollableViewportSize(TABLE_SIZE);
    table.setFillsViewportHeight(true);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

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