最近有人问,如何在table中Ctrl+C赋值的时候,定制选中的内容。默认情况下是返回value值,但是很多情况下,我们都会定制一些显示,举个例子,取出来的原始位置数据是0,重载renderer以后可能就变成了"右",当我们copy的时候,而我们取到的值仍然是0,而对于客户而言,可能取出"右"可能更有意义,这个时候就需要做一些处理了,如下所示:
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);
}
}
});
本文介绍如何在Swing框架中的表格组件上自定义Ctrl+C的复制行为,通过示例代码展示如何根据实际需求调整复制内容,以实现更加友好的用户体验。
1174

被折叠的 条评论
为什么被折叠?



