gpt4 book ai didi

java - javafx 表中的自动行编号

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:59 26 4
gpt4 key购买 nike

我有一个示例代码,我们在 Java Swing 表中使用动态行号,即 JTable。我是 JavaFX 的新手,希望在 JavaFX 中也有同样的表现。有什么方法可以在 JavaFX Table

中设置自动行号
 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 中,您使用 TableColumn使用 CellFactories 和 CellValueFactories 来填充您的 TableView

JavaFX 教程有一个 article这可能会让你开始。

在我使用的一种方法中,我将要显示的业务对象转换为表示对象,并向它们添加所有必要的属性(如您的情况,即数字)。

编辑:在第二种更简洁的方法中,您可以将 CellFactory 设置为创建一个 TableCell,它在 TableCell#updateItem(S , boolean 值):

public class NumberedCell extends TableCell{

protected void updateItem(Object object, boolean selected){
setText(String.valueOf(getIndex());
}
}

关于java - javafx 表中的自动行编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com