Ash*_*oli 8 java swing javafx-2
我有一个示例代码,我们用它来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();
}
}
Run Code Online (Sandbox Code Playgroud)
在JavaFX中,您使用TableColumn
带有CellFactories和CellValueFactories的s来填充您的TableView
.
JavaFX教程有一篇文章可能会帮助您入门.
在我使用的一种方法中,我将业务对象转换为显示为表示对象,并将所有必需的属性(如您的情况下,数字)添加到它们.
编辑:在第二种,更清洁的方法,你可以设置你的CellFactory创建一个TableCell
显示自己的index
属性TableCell#updateItem(S, boolean)
:
public class NumberedCell extends TableCell{
protected void updateItem(Object object, boolean selected){
setText(String.valueOf(getIndex());
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3394 次 |
最近记录: |