当前位置: 首页 > 知识库问答 >
问题:

JTable中是否有像getColumnClass这样的方法来设置特定于行的数据类型?

刘博文
2023-03-14

我有一个JTable,它有两列:键名和值。值列中允许多种数据类型,如下图:

所以在第1列中,第1行可能有一个布尔值,第2行可能有一个字符串。但是方法getColumnClass(…) 仅允许我为完整列设置数据类型。

有没有办法设置特定于列行的数据类型?

你好,神话


共有1个答案

卞俊贤
2023-03-14

同一列不能有两种数据类型。但对于您的情况,我的建议是使用渲染。

>

  • 阅读有关编辑器和渲染器的信息。

    将列数据类型定义为包含JGroup的组件类。

    渲染列。您的渲染器类向列返回一个面板。它应该有一个约束,基于您应该将组件添加到面板并返回面板。

    这个例子展示了如何在这些情况下使用渲染。

    class PanelCellRenderer extends JPanel implements TableCellRenderer {
    public Component getTableCellRendererComponent(final JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
           // row number is used as a constraint.
            if(row == 0) {
                this.add( new JTextField("", 20));
            } else if(row == 1) {
                this.add( new JCheckBox());
            } else if(row == 2) {
                this.add( new JButton());
            } else {
                this.add( new JLabel("Row-4"));
            }
            return this;
       }
    }
    

    //输出:

    第一行是带有JTextField的面板。类似地,第二行、第三行有JCheckBox和JButton。第四行有一个带文本的标签。

    P、 S:这只是一次尝试。就连我以前也没有这样做过。如果我错了,请纠正我。

  •  类似资料:
    • 问题内容: 在PHP中,使用可以很容易地传回json对象。 但是,是否有与之等效的XML? 问题答案: JSON可以原生地表达php数组,整数,字符串等。XML没有这样的概念,只有元素,属性和文本。如果要逐字转移对象,请使用JSON。如果要实现复杂的API,请使用XML,例如php DOM接口。

    • 是否可以为每个测试方法指定来自DataProvider的数据。我做过这样的东西。 有没有更好的方法?我可以为两种测试方法指定一个数据集吗?谢谢

    • 问题内容: PHP中数组符号的简写是什么? 我尝试使用(无效): 如果您提供有关PHP其他速记的一些信息的链接,那将是完美的。 问题答案: 更新: 从PHP 5.4.0 开始,引入了用于声明数组的简化语法: 上一个答案: 没有。只有但是您可以开始添加元素。 就PHP而言,这完全可以。对于不确定的变量,你甚至不会得到E_NOTICE。 如果使用未初始化的变量,则会发出E_NOTICE级错误,但是如果

    • 问题内容: 我一直在做一个Android教程,遇到了一个包含以下内容的类: 是一种按类型继承的形式吗?还是我应该了解的其他Java语法? 该类是: 问题答案: 这称为 泛型 。内的类和是一个 类型参数 。 用一个例子最容易解释: 一个可以存储项目。如果您这样指定类型参数:那么此数组列表将仅存储类型的项(换句话说,将仅存储s)! 同样,也通过类型“参数化”。将可能包含一个值,该值将与指定类型的和,而

    • 我想知道是否可以使用我的数据库中的数据将JTable中的一些行灰化或呈现为不可见? 以下是我的JTable中的列: 显示“我的表格”时,我希望行带有d1。getDutyStatus(),其中dutyStatus=“Inactive”将灰显。我的表格当前可以更新为“活动”(按更新按钮)或“非活动”(按删除按钮)。我不希望用户能够编辑dutyStatus为“Inactive”的任何职责。非常感谢您的任

    • 问题内容: PHP是否有像Java这样的虚拟机? 问题答案: 是。 与运行PHP的平台无关,这些脚本被编译为相同的字节码,并由Zend Engine运行。 与Java的区别在于,该编译后的代码通常不存储在单独的文件中,并且每次执行时都会重新编译脚本(但是,请参见操作码缓存)。