在单元格数据录入中,jtable是追加方式,可是客户习惯了excel的单击选中后直接录入数据为覆盖方式。

例如:我在一个单元格中输入了数字“4”,单元格失去焦点然后,从新选中,我在输入一个“5”,客户想要的效果是单元格中的内容变成“5”,而不是“45”。

估计你已经找到正确答案了。。
public class TableWithOverwrite extends JTable {
public final static String EXCLUDE = "F2";

private boolean isBlankEditor = false;

public TableWithOverwrite() {
super();
}

public TableWithOverwrite(TableModel tm) {
super(tm);
}

@Override
public Component prepareEditor(TableCellEditor editor, int row, int column) {
Component c = super.prepareEditor(editor, row, column);

if (isBlankEditor)
((JTextField) c).setText("");

return c;
}

@Override
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
if (! EXCLUDE.equals(KeyEvent.getKeyText(e.getKeyCode())))
isBlankEditor = true;

boolean retValue = super.processKeyBinding(ks, e, condition, pressed);

isBlankEditor = false;
return retValue;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-07
ctrl+a 全选 让后输入5
先按键盘上的ins按键,然后输入5
试试看吧!追问

大哥,我用的是java,我是想知道jtable有没有改变输入方式的方法,或者哪位大哥教教我重写jtable的按键响应。自己写按键响应没用,因为程序处理完我写的按键响应,还会继续执行jtable默认的按键响应。