本文目錄一覽:
- 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
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256381.html