javafx表中的自动行编号
我有一个示例代码,用于动态javafx表中的自动行编号,java,swing,javafx-2,Java,Swing,Javafx 2,我有一个示例代码,用于动态JavaSwing表中的行号,即JTable。我是JavaFX新手,希望在JavaFX中也能看到同样的内容。有没有办法在JavaFX表中设置自动行号 class LineNumberTable extends JTable { private JTable mainTable; public LineNumberTable(JTable table) { super();
Java
Swing
表中的行号,即JTable
。我是JavaFX
新手,希望在JavaFX
中也能看到同样的内容。有没有办法在JavaFX
表中设置自动行号
class LineNumberTable extends JTable {
private JTable mainTable;
public LineNumberTable(JTable table) {
super();
mainTable = table;
setAutoCreateColumnsFromModel(false);
setModel(mainTable.getModel());
setAutoscrolls(false);
addColumn(new TableColumn());
getColumnModel().getColumn(0).setCellRenderer(mainTable.getTableHeader().getDefaultRenderer());
getColumnModel().getColumn(0).setPreferredWidth(40);
setPreferredScrollableViewportSize(getPreferredSize());
}
@Override
public boolean isCellEditable(int row, int col) {
if (col == uneditableColumn) {
return false;
}
return bEdit;
}
@Override
public Object getValueAt(int row, int column) {
return Integer.valueOf(row + 1);
}
@Override
public int getRowHeight(int row) {
return mainTable.getRowHeight();
}
}
在JavaFX中,将s与CellFactorys和CellValueFactorys一起使用来填充表视图
JavaFX教程提供了一个可以让您开始学习的方法
在我使用的一种方法中,我将要显示的业务对象转换为表示对象,并向其添加所有必要的属性(如您的案例中的数字)
编辑:在第二种更简洁的方法中,您可以将CellFactory设置为创建一个TableCell
,在TableCell\updateItem(S,布尔值)
中显示自己的index
属性:
您能添加一个Swing JTable的屏幕截图以明确您的目标吗?@UrsReupke请参考此屏幕截图。您可以看到swing表的屏幕截图,该表的第一列中有由上述代码生成的行号,并且希望在javafx中也有相同的行号。谢谢,谢谢。我相信updateItem的布尔参数是“空”而不是“已选择”。这没什么大不了的,但可能会让读者感到困惑。此外,@Override注释也是合理的——而且,为了语法正确,在setText()处加上一个右括号……;)
public class NumberedCell extends TableCell{
protected void updateItem(Object object, boolean selected){
setText(String.valueOf(getIndex());
}
}