下面列出了怎么用javafx.scene.control.TableColumnBase的API类实例代码及写法,或者点击链接到github查看源代码。
public void resizeColumns() {
try {
Method method = getClass().getClassLoader()
.loadClass("javafx.scene.control.skin.TableSkinUtils")
.getMethod("resizeColumnToFitContent", TableViewSkinBase.class, TableColumnBase.class, int.class);
method.setAccessible(true);
for (TreeTableColumn<R, ?> column : this.getColumns()) {
method.invoke(null, getSkin(), column, -1);
}
} catch (Throwable t) {
//for some reason, a NPE will be thrown now and then, some racing condition?
log.warn("Failed to resize columns");
}
// TableSkinUtils.resizeColumnToFitContent((TableViewSkinBase<?, ?, ?, ?, ?>) getSkin(), getTreeColumn(), -1);
// ((ResizableJfxTreeTableViewSkin<R>)getSkin()).resizeAllColumns();
}
/**
* TableColumnの名前を取得する
* @param column TableColumn
* @return TableColumnの名前
*/
public static String getColumnName(TableColumn<?, ?> column) {
LinkedList<String> names = null;
TableColumnBase<?, ?> parent = column;
while ((parent = parent.getParentColumn()) != null) {
if (names == null) {
names = new LinkedList<>();
}
names.addFirst(parent.getText());
}
if (names != null) {
return names.stream().collect(Collectors.joining(".")) + "." + column.getText();
} else {
return column.getText();
}
}
public JFXNestedTableColumnHeader(TableViewSkinBase skin, TableColumnBase tc) {
super(skin, tc);
}
protected TableColumnHeader createTableColumnHeader(TableColumnBase col) {
return col.getColumns().isEmpty() ?
new JFXTableColumnHeader(getTableViewSkin(), col) :
new NestedTableColumnHeader(getTableViewSkin(), col);
}
public JFXTableColumnHeader(TableViewSkinBase skin, TableColumnBase tc) {
super(skin, tc);
}