java - jtable 的行不接受选择

标签 java swing colors selection tablecellrenderer

我有一个 JTable。我使用 setDefaultRenderer 为某些行着色,如下所示:

Acueill.jTableProduit.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
            @Override
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
                super.getTableCellRendererComponent( table, value, false, hasFocus, row, col);
                final int qte = (int) table.getModel().getValueAt(row, 7);
                final int min = (int) table.getModel().getValueAt(row, 8);
                if (qte < min) {
                    setBackground(Color.red);
                } else {
                    setBackground(table.getBackground());
                }
                return this;
            }
        });

但是我的 jtable 不接受选择行。如何解决这个问题?

最佳答案

在我看来,即使您在不同的列中有字符串和数字数据,您也尝试为表使用单个渲染器。这不是一个好主意。通常数字的格式和显示方式与字符串不同。因此,您需要为表中的每种数据类型创建多个渲染器。

要了解不同的方法,请查看 Table Row Renderering它展示了如何在没有自定义渲染器的情况下设置整行的背景。

关于java - jtable 的行不接受选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024625/

相关文章:

java - JList 中单行中的多种字体颜色

android - 如何在 Android 中为通知区域和通知抽屉使用不同的通知图标

Java ServiceLoader : no error, 但也没有找到实现

Java GAE : Process terminated because the backend took too long to shutdown

java - 如何让其他人使用依赖数据库的桌面应用程序?

java - 如何使用 DefaultListModel() 添加或删除元素时更新 JList

css - 为什么文本颜色属性称为 'color' ?

java - 谁调用了我的 Java 应用程序?

java - Android:如何让 Cardviews 在 Recyclerview 中重叠?

java - Swing 显示一些 JLabel,但不显示其他 JLabel