本文目录一览:
- 1、java将一个文件复制到剪切板
- 2、java延时函数
- 3、java 操作 系统剪贴板的问题
- 4、在java中如何实现复制,粘贴,剪切
- 5、java中利用windows剪贴板复制与粘贴
- 6、java 怎么将数据复制到粘贴板?
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