首页 > 编程知识 正文

java怎么把文本复制到剪贴板,剪贴板可以实现文件复制吗

时间:2023-12-27 22:27:19 阅读:325874 作者:FVIT

本文目录一览:

java将一个文件复制到剪切板

首先要明白 “剪切板” 里面能放什么内容。 剪切板只能放 “文本内容”或者“文件路径”, 如果你选中文字,然后复制,那么放在剪切板就是文字内容;如果你选择一个文件,复制,那放在剪切板里面是 文件的路径。

你说的 文件复制到剪切板 是不合理的。

Java 通过 java.awt.datatransfer.Clipboard 访问剪切板。

java延时函数

在Java中有时候需要使程序暂停一点时间,称为延时。普通延时用Thread.sleep(int)方法,这很简单。它将当前线程挂起指定的毫秒数。如

Java 代码复制内容到剪贴板

try

{

Thread.currentThread().sleep(1000);//毫秒

}

catch(Exception e){}

在这里需要解释一下线程沉睡的时间。sleep()方法并不能够让程序"严格"的沉睡指定的时间。例如当使用5000作为sleep()方法的参数时,线 程可能在实际被挂起5000.001毫秒后才会继续运行。当然,对于一般的应用程序来说,sleep()方法对时间控制的精度足够了。

但是如果要使用精确延时,最好使用Timer类:

Java 代码复制内容到剪贴板

Timer timer=new Timer();//实例化Timer类

timer.schedule(new TimerTask(){

public void run(){

System.out.println("退出");

this.cancel();}},500);//五百毫秒

这种延时比sleep精确。上述延时方法只运行一次,如果需要运行多次, 使用timer.schedule(new MyTask(), 1000, 2000); 则每间隔2秒执行MyTask()

java 操作 系统剪贴板的问题

我觉得可以分开来看到底是那里的问题。

首先,在外面Ctrl+V却能得到刚才复制的字符串,那么这时再调用一次clipboard.getContents(null).getTransferData(DataFlavor.stringFlavor).toString();是否有数据?也就是说是不是有延迟问题。

其次,在外面Ctrl+C复制一些文本,然后调用一次clipboard.getContents(null).getTransferData(DataFlavor.stringFlavor).toString();是否有数据?也就是看看获取的方式对不对。

最后,试试其他的DataFlavor看看行不行,看看是不是要自定义一个。

在java中如何实现复制,粘贴,剪切

要用到java.awt.datatransfer包中的Clipboard类

import java.awt.*;import java.awt.event.*;

import java.awt.datatransfer.*;

public class Test extends Frame implements ActionListener

{ MenuBar menubar; Menu menu;

MenuItem copy,cut,paste;

TextArea text1,text2;

Clipboard clipboard=null;

Test()

{ clipboard=getToolkit().getSystemClipboard();//获取系统剪贴板。

menubar=new MenuBar();

menu=new Menu("Edit"); copy=new MenuItem("copy");

cut=new MenuItem ("cut"); paste=new MenuItem ("paste");

text1=new TextArea(20,20); text2=new TextArea(20,20);

copy.addActionListener(this); cut.addActionListener(this);

paste.addActionListener(this);

setLayout(new FlowLayout());

menubar.add(menu);

menu.add(copy); menu.add(cut); menu.add(paste);

setMenuBar(menubar);

add(text1);add(text2);

setBounds(100,100,200,250); setVisible(true);pack();

addWindowListener(new WindowAdapter()

{public void windowClosing(WindowEvent e)

{System.exit(0);

}

}) ;

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==copy) //拷贝到剪贴板。

{ String temp=text1.getSelectedText(); //拖动鼠标选取文本。

StringSelection text=new StringSelection(temp);

clipboard.setContents(text,null);

}

else if(e.getSource()==cut) //剪贴到剪贴板。

{ String temp=text1.getSelectedText(); //拖动鼠标选取文本。

StringSelection text=new StringSelection(temp);

clipboard.setContents(text,null);

int start=text1.getSelectionStart();

int end =text1.getSelectionEnd();

text1.replaceRange("",start,end) ; //从Text1中删除被选取的文本。

}

else if(e.getSource()==paste) //从剪贴板粘贴数据。

{ Transferable contents=clipboard.getContents(this);

DataFlavor flavor= DataFlavor.stringFlavor;

if( contents.isDataFlavorSupported(flavor))

try{ String str;

str=(String)contents.getTransferData(flavor);

text2.append(str);

}

catch(Exception ee){}

}

}

public static void main(String args[])

{ Test win=new Test();

}

}

java中利用windows剪贴板复制与粘贴

javax.swing.text.JTextComponent这个类里面有cut(),copy()方法,JTextField,JPassword,JTextArea都继承它,直接用里面的方法就是了,干啥这么麻烦,粘贴也是里面的paste()方法,都封装好了的,直接往剪切板里放和取

JPanelText?jdk1.6里面没有这个类,有可能你是用的第三方jar包吧!!!!!

去看看他是不是继承JTextComponent,或者继承他的子类,JTextComponent应该是文本输入的最高级了,在jdk里面的swing组建中的文本编辑都是继承他的

java 怎么将数据复制到粘贴板?

放文字试过,方图片没试过。

不过可以给你参考一下js~,你自己试试,成功了可以告诉我。

script

function copyToClipboard()

{

var d = document.all("source").value;

window.clipboardData.setData('text', d);

}

/script

BODY

button onclick="copyToClipboard();"拷贝/button

input type="text" size=20 id="source" value="测试数据"

br

button onclick="alert(window.clipboardData.getData('text'));"显示/button

button onclick="window.clipboardData.clearData('text');"清空/button

/BODY

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。