* 用来JTable控制输入数字判断
*/
package com.sa.fb.pos.print;
import java.awt.Component;
import javax.swing.DefaultCellEditor;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import com.sa.fb.pos.utils.DialogUtil;
public class IntegerEditor extends DefaultCellEditor {
private static final long serialVersionUID = -3781656457614462617L;
private String oldText;
public IntegerEditor() {
super(new JTextField());
//field.setBorder(BorderFactory.createLineBorder(Color.black));
}
public Object getCellEditorValue() {
String value = (String) delegate.getCellEditorValue();
if (value != null && value.trim().length() > 0) {
try {
Integer.parseInt(value);
} catch (Throwable t) {
//JOptionPane.showMessageDialog(null, "请输入实数值! ");
DialogUtil.alert("请输入实数值! ");
return oldText;
}
}
return value;
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int col) {
oldText = value.toString();
return super.getTableCellEditorComponent(table, value, isSelected, row,
col);
}
}
/**
* 利用TableModel的更新,来重置JTable值
*/
public void resetTableColumn() {
/**row:二维数组;columns:一维数组****/
TableModel model = new ReportTableModel(columnList2Array(listColumn),this.tablename);
tableColumn.setModel(model);
tableColumn.setCellSelectionEnabled(true);
tableColumn.getTableHeader().setReorderingAllowed(false);//不允许列重新排序
tableColumn.setRowHeight(23); // 设置表格的行高度
TableColumnModel TCM=tableColumn.getColumnModel();
/***控制输入整数satrt***/
TCM.getColumn(3).setCellEditor(new IntegerEditor());
TCM.getColumn(4).setCellEditor(new IntegerEditor());
/***控制输入整数end***/
TCM.getColumn(5).setCellEditor(new DefaultCellEditor(new JComboBox(positionJC))) ;
TCM.getColumn(6).setCellEditor(new DefaultCellEditor(new JComboBox(fontJC))) ;
TCM.getColumn(7).setCellEditor(new DefaultCellEditor( new JComboBox(fontSizeJC))) ;
TCM.getColumn(9).setCellEditor(new DefaultCellEditor(new JComboBox(patternJC))) ;
}