修改JTable默认Copy实现

    最近有人问,如何在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);
                }
            }
        });
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值