如何拦截剪贴板操作并将它们添加到JList?

时间:2011-09-16 10:51:44

标签: java clipboard

每当按下 Ctrl + C 时,我想将剪贴板内容作为元素添加到JList。基本上,我希望在按下 Ctrl + C 时执行下面的代码。

我该怎么做?

current=getClipboardContents();
model.addElement(current);

current是Clip类中的StringmodelJList的默认模型

1 个答案:

答案 0 :(得分:1)

您可能会使用Key Bindings

KeyStroke的动作类似于:

Transferable t = c.getContents( null );

if ( t.isDataFlavorSupported(DataFlavor.stringFlavor) )
{
    Object o = t.getTransferData( DataFlavor.stringFlavor );
    String data = (String)t.getTransferData( DataFlavor.stringFlavor );
}
  

是的,我不断阅读系统剪贴板

听起来不是一个很好的设计。如果在复制内容并将其添加到JList之前在剪贴板中替换了某些内容会怎样?

无论如何,你已经获得了从剪贴板中复制文本的代码。我会使用Timer来安排轮询,以便在EDT上完成对ListModel的更新。