修改JTable默認(rèn)Copy實(shí)現(xiàn)
Posted on 2010-03-05 11:34 zht 閱讀(1058) 評(píng)論(0) 編輯 收藏 所屬分類: Swing最近有人問,如何在table中Ctrl+C賦值的時(shí)候,定制選中的內(nèi)容。默認(rèn)情況下是返回value值,但是很多情況下,我們都會(huì)定制一些顯示,舉個(gè)例子,取出來的原始位置數(shù)據(jù)是0,重載renderer以后可能就變成了"右",當(dāng)我們copy的時(shí)候,而我們?nèi)〉降闹等匀皇?,而對(duì)于客戶而言,可能取出"右"可能更有意義,這個(gè)時(shí)候就需要做一些處理了,如下所示:
table.getActionMap().put("copy", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//至于此處如何處理,就看具體的邏輯了
box.getLastSelectedElement();
int column = table.getSelectedColumn();
int row = table.getSelectedRow();
if (column != -1 && row != -1) {
Object value = table.getValueAt(row, column);
StringSelection stringSelection = new StringSelection(value.toString()+"hello");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
}
}
});
public void actionPerformed(ActionEvent e) {
//至于此處如何處理,就看具體的邏輯了
box.getLastSelectedElement();
int column = table.getSelectedColumn();
int row = table.getSelectedRow();
if (column != -1 && row != -1) {
Object value = table.getValueAt(row, column);
StringSelection stringSelection = new StringSelection(value.toString()+"hello");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
}
}
});