java jTable:如何知道行号?
我编写了一个实现TableCellRenderer的类,因为我想在jTable中放置复选框。 在此类的GetTableCellRenderComponent方法中,我有以下条件: 如果(isSelected){do…} 在这个if条件下,我如何知道行号 代码: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
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教程的链接进行操作,了解如何在使用布尔值的示例中使用表。只需使用
行
它就在方法的签名中,因此应该可用。我没有注意到这一点,感谢您的帮助!做那件事要小心。这样,您将被迫对同一列下的所有行值使用单个渲染器。