java jTable:如何知道行号?

java jTable:如何知道行号?,java,swing,jtable,row,renderer,Java,Swing,Jtable,Row,Renderer,我编写了一个实现TableCellRenderer的类,因为我想在jTable中放置复选框。 在此类的GetTableCellRenderComponent方法中,我有以下条件: 如果(isSelected){do…} 在这个if条件下,我如何知道行号 代码: private static class ValueRenderer extends JCheckBox implements TableCellRenderer { private static final Colo

我编写了一个实现TableCellRenderer的类,因为我想在jTable中放置复选框。 在此类的GetTableCellRenderComponent方法中,我有以下条件:

如果(isSelected){do…}

在这个if条件下,我如何知道行号

代码:

 private static class ValueRenderer extends JCheckBox
    implements TableCellRenderer {

    private static final Color hilite = new Color(0xE8E8E8);

    public ValueRenderer() {
        this.setOpaque(true);
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int col) {
        Value v = (Value) value;
        this.setSelected(v.selected);

        if(isSelected)
        {
            if(v.selected==true)
            System.out.println("checked"); 
            else System.out.println("unchecked");
        }
        return this;
    }
}

  private static class Value {
    private Boolean selected;

    public Value(Boolean selected) {
        this.selected = selected;

    }



}

使用传递给渲染器的行参数。它是基于零的,就像Java中的数组一样。

为什么要创建值类和自定义渲染器?从代码上看,它只是一个布尔值。只需将布尔值直接添加到TableModel,然后重写JTable或TableModel的getColumnClass()方法以返回布尔值,该表将使用默认的布尔值呈现程序


阅读JTable API并按照Swing教程的链接进行操作,了解如何在使用布尔值的示例中使用表。

只需使用
它就在方法的签名中,因此应该可用。我没有注意到这一点,感谢您的帮助!做那件事要小心。这样,您将被迫对同一列下的所有行值使用单个渲染器。