Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何截取剪贴板操作并将其添加到JList?_Java_Clipboard - Fatal编程技术网

Java 如何截取剪贴板操作并将其添加到JList?

Java 如何截取剪贴板操作并将其添加到JList?,java,clipboard,Java,Clipboard,无论何时按下Ctrl+C,我都希望将剪贴板内容作为元素添加到JList。基本上,我希望在按下Ctrl+C时执行下面的代码 我该怎么做 current=getClipboardContents(); model.addElement(current); current是Clip类中的String,而model是JList的默认模型,您可能会使用它 击键的操作类似于: Transferable t = c.getContents( null ); if ( t.isDataFlavorSuppo

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

我该怎么做

current=getClipboardContents();
model.addElement(current);
current
是Clip类中的
String
,而
model
JList

的默认模型,您可能会使用它

击键的操作类似于:

Transferable t = c.getContents( null );

if ( t.isDataFlavorSupported(DataFlavor.stringFlavor) )
{
    Object o = t.getTransferData( DataFlavor.stringFlavor );
    String data = (String)t.getTransferData( DataFlavor.stringFlavor );
}
是的,我一直在读系统剪贴板

听起来不是很好的设计。如果在复制内容并将其添加到JList之前,剪贴板中的某些内容被替换,该怎么办


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

为什么您认为这需要一个单独的线程?如果它是一个Swing应用程序,为什么不让Swing线程来处理它呢?请用您的问题摘要来代替“java帮助”,比如“clip board access”或其他有意义的东西。您是否在尝试持续读取剪贴板并将其内容复制到您的应用程序中?在此上下文中,Ctrl+C是什么意思?这适用于控制台应用程序,而不是基于GUI的应用程序。应为Ctrl+V,这是Windows(和其他应用程序)将剪贴板内容粘贴到应用程序中的标准方式。如果用户在MS Word(或任何其他应用程序)处于焦点时按Ctrl-C,您是否希望在
JList
中看到复制的文本?