奇新Java电子表格控件常见问题
问:请问如何使用授权码?
答:您可以在程序菜单 帮助 -> 关于 对话框中添入此授权码.
您可以用下边的代码在您的程序用注册授权码:
// the code means the above license data
LicenseManager.getInstance().addLicenseData(code);
问:怎样隐藏黑色的单元格边框?
答:用下边的代码关闭单元格边框:
dataGrid.setSelectionBorderPainted(false);
问:如何在JDataGrid中启用栏排序,也就是点击栏头进行排序?
答:可以通过下边的代码启用JDataGrid的栏排序功能
dataGrid.setModel(new DefaultColumnSorter(createModel()));
dataGrid.putClientProperty("JDataGrid.columnSortingEnabled", Boolean.TRUE);
dataGrid.putClientProperty("JDataGrid.switchUnsortedOrderEnabled", Boolean.TRUE);
应该使用JDataGrid内建的JTableHeader.
问:为什么启用栏排序后栏头不能显示排序小图标?
答:应该使用JDataGrid内建的JTableHeader,默认的JTableHeader在早期的JDK版本中不支持栏排序。
问:如何启用打印预览的彩色效果?
答:JPrintPreview提供了支持彩色效果的方法:
JPrintPreview.setColorType(JPrintPreview.COLOR);
问:为什么在JDataGrid中添加TableColumn会出错呢?
答:请使用DefaultDataGridModel.addColumn(null)添加新的栏。
问:怎样设置AComboBox控件文本左对齐?
答:可以直接使用包com.zfqjava.swing.cell中的ObjectCellRenderer的类,它有方法:
setDefaultHorizontalAlignment
问:怎样设置一个Renderer,使用MM/DD/YYYY格式化输出日期类型的值?
答:可以直接创建一个DateCellRenderer,将
new SimpleDateFormat("MM/dd/yyyy")作为参数传入构造函数。
问:如何使JDataGrid的栏宽自动适应栏内容?
答:使用JDataGrid.sizeColumnWidthToFit方法可以调整指定栏的宽度,使其适应栏内容。
问:JDataGrid的公式不能在OpenOffice中正常使用,怎样修改代码?
答:我们在最新的JDataGrid中提供了这项功能,您可以直接设置属性,就可以实现OpenOffice公式的解析。
问:JDataGrid如何在排序的状态下隔行显示不同的颜色?
答:JDataGrid提供了直接隔行显示不同颜色的功能,使用下边的代码:
dataGrid.setAlternatingRowBackground(Color.gray);
dataGrid.setAlternatingRowForeground(Color.white);
问:如何在JDataGrid控件栏头显示复选框?
答:使用下边的代码可启用这个功能:
JDataGrid dataGrid = getDataGrid();
BooleanCellRenderer renderer = new BooleanCellRenderer();
renderer.setComponentType(BooleanCellRenderer.CHECK_BOX);
// gloablly enable the check box renderer
// dataGrid.getTableHeader().setDefaultRenderer(renderer);
dataGrid.getColumnModel().getColumn(0).setHeaderRenderer(renderer);
问:JDataGrid控件是否可能阻止单个栏移动?
答:这个功能可以通过写一个TableColumnModel来实现,在自己写的TableColumnModel 中覆盖下边的方法:
TableColumn firstColumn = new TableColumn(0);
// override the method in TableColumnModel
public TableColumn getColumn(int columnIndex) {
if(columnIndex == 0) {
return firstColumn;
} else {
return super.getColumn(columnIndex);
}
}
问:怎样设置JDataGrid可以允许单元格类型互相转换?
答:使用下边的代码:
dataGrid.setEditingStopBehavior(JDataGrid.COMMIT_OR_EDITING);
问:怎样在不使用JDataGrid控件的情况下让DataGridModel输出的xls文件指定特定的行高?
答:使用下边的代码:
WorkSheet[] sheets = new WorkSheet[1];
sheets[0] = new WorkSheet("sheet0", tableModel);
// 添加下列代码:
SizeModel rowSizeModel = new DefaultSizeModel("row model",
tableModel.getRowCount(), 16);
rowSizeModel.setSize(0, 30);
sheets[0].setRowSizeModel(rowSizeModel);
WorkBook book = new WorkBook(sheets);
ModelIO.writeWorkBook(book, "xls", null, f);