Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javafx表中的自动行编号_Java_Swing_Javafx 2 - Fatal编程技术网

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());
  }
}