亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java利用剪貼板實現交換程序間數據的方法

2019-11-26 15:28:15
字體:
來源:轉載
供稿:網友

本文實例講述了Java利用剪貼板交換程序間數據的實現方法。在圖形化系統中,系統剪貼板非常重要,很難想象一個沒有剪貼板功能的圖形化操作系統使用起來會是怎樣。本例就實現了Java 程序與所在系統的剪貼板的數據交流,當單擊“Paste”按鈕后,Java 程序從系統剪貼板中取得數據并顯示在一個JTextArea 組件中;當單擊“Copy”按鈕后,文本區中的選中文本將被傳送到系統剪貼板上。

首先必須得到系統剪貼板的實例引用,java.awt.Toolkit 類中提供了getSystemClipboard()方法來返回一個Clipboard 實例;并且由于Toolkit 類提供了靜態方法getDefaultToolkit()返回一個Toolkit實例,因此也不必new 一個Toolkit 對象,具體實現代碼如下:

Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();

此處Clipboard 類提供了getContents()和setContents()方法來實現數據交換。

Transferable getContents(Object requester);Void setContents(Transferable contents, ClipboardOwner owner);

此處的getContents()方法從系統剪貼板中獲得一個Transferable 對象,參數requester 表示數據申請者,一般用this 就行了,表示要求數據的是本類的實例對象。如果要求的數據是文本,可以調用Transferable對象的getTransferData(DataFlavor.stringFlavor)得到,實現代碼如下:

Transferable tr = cb.getContents(this);String s = (String) tr.getTransferData(DataFlavor.stringFlavor);

setContents()方法從程序中傳數據到系統剪貼板,參數contents 表示數據,參數owner 表示剪貼板的擁有者。

StringSelection ss = new StringSelection(this.jTextArea1.getText());cb.setContents(ss,ss);

上面語句中的StringSelection 類表示選中的文本。
從上面的分析,實際上系統剪貼板中存放的是Transferable對象集合,程序和系統剪貼板的數據交換就是Transferable 對象的傳遞。程序代碼:

1.新建一個Project,取名為JClipDemo。
2.新建一個Application,取名為JClipDemo;主窗口名取名為MainFrame,標題為JClipDemo。
3.在MainFrame 類的設計窗口中添加一個JTextArea 組件、兩個JButton 和一個JPanel 組件,并且兩個JButton 組件放在JPanel 組件上。添加新的屬性Clipboard cb。具體代碼如下:

public class MainFrame extends JFrame {private JPanel contentPane;private BorderLayout borderLayout1 = new BorderLayout();//創建新的組件private JTextArea jTextArea1 = new JTextArea();private JPanel jPanel1 = new JPanel();private JButton jButton1 = new JButton();private JButton jButton2 = new JButton();//剪貼板實例Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();……}

4.編寫MainFrame 類的初始化方法jbInit(),完成各組件的初始屬性設置,并為按鈕組件添加事件監聽器,具體代碼如下:

private void jbInit() throws Exception {//setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));contentPane = (JPanel) this.getContentPane();contentPane.setLayout(borderLayout1);this.setSize(new Dimension(396, 203));this.setTitle("JClipboardDemo");jButton1.setFont(new java.awt.Font("Dialog", 0, 14));jButton1.setText("Copy");jButton1.addActionListener(new java.awt.event.ActionListener() { //添加事件監聽器public void actionPerformed(ActionEvent e) {jButton1_actionPerformed(e);}});jButton2.setFont(new java.awt.Font("Dialog", 0, 14));jButton2.setText("Paste");jButton2.addActionListener(new java.awt.event.ActionListener() {//添加事件監聽器public void actionPerformed(ActionEvent e) {jButton2_actionPerformed(e);}});contentPane.add(jTextArea1, BorderLayout.CENTER);contentPane.add(jPanel1, BorderLayout.SOUTH);jPanel1.add(jButton1, null);jPanel1.add(jButton2, null);}

5.編寫“Copy”按鈕的事件處理方法,向系統剪貼板發送數據。

void jButton1_actionPerformed(ActionEvent e) {StringSelection ss = new StringSelection(this.jTextArea1.getText()); //發送選中文本到系統剪貼板cb.setContents(ss,ss);}

6.編寫“Paste”按鈕的事件處理方法,從系統剪貼板獲得數據。

void jButton2_actionPerformed(ActionEvent e) {try{Transferable tr = cb.getContents(this); //從系統剪貼板得到一個Transferable 對象if (tr != null){String s = (String) tr.getTransferData(DataFlavor.stringFlavor); //從Transferable 對象中得到文本數據if (s!=null)this.jTextArea1.insert(s,this.jTextArea1.getCaretPosition()); //在JTextArea 組件中的光標所在處插入文本}}catch(Exception err){err.printStackTrace();}}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
深夜精品寂寞黄网站在线观看| 中文字幕综合一区| 亚洲黄色有码视频| 国内精品小视频在线观看| 不卡在线观看电视剧完整版| 在线一区二区日韩| 日韩三级影视基地| 琪琪第一精品导航| 77777少妇光屁股久久一区| 日本精品视频在线| 成人av在线网址| 午夜精品一区二区三区在线视频| 国产激情综合五月久久| 欧美成人性色生活仑片| 久久99热精品这里久久精品| 国产国语刺激对白av不卡| 国产精品精品久久久| 国产精品日韩一区| 久久久久久高潮国产精品视| 国产精品久久久久久久久久久久| 91视频国产高清| 欧美最猛性xxxxx(亚洲精品)| www.色综合| 亚洲网在线观看| 2019最新中文字幕| 在线日韩欧美视频| 午夜精品一区二区三区在线播放| 俺也去精品视频在线观看| 成人激情在线观看| 姬川优奈aav一区二区| 日韩毛片在线观看| 亚洲精品视频在线观看视频| 国产成人精品免高潮在线观看| 日韩有码片在线观看| 97在线日本国产| 92福利视频午夜1000合集在线观看| 久久亚洲精品视频| 国产视频自拍一区| 亚洲精品美女视频| 久久精品视频在线播放| 日本三级韩国三级久久| 亚洲一区亚洲二区| 日韩av在线高清| 日本电影亚洲天堂| 亚洲国产精品va在线观看黑人| 欧美日韩国产精品专区| 91精品久久久久久久久久久久久| 亚洲国产精品久久久| 久久久久久美女| 亚洲午夜未满十八勿入免费观看全集| 亚洲视频第一页| 91亚洲国产成人精品性色| 成人黄色大片在线免费观看| 国产美女精品免费电影| 欧美一级大胆视频| 国产精品欧美一区二区三区奶水| 亚洲国产欧美自拍| 亚洲系列中文字幕| 中文字幕视频在线免费欧美日韩综合在线看| 日韩女在线观看| 538国产精品一区二区在线| 国产精品美女免费视频| 日韩资源在线观看| 国产精品国产自产拍高清av水多| 亚洲人午夜精品免费| 日韩网站在线观看| 欧美在线一区二区视频| 欧美极品美女视频网站在线观看免费| 亚洲欧美在线看| 91精品久久久久久久久久| 国产精品视频公开费视频| 97精品国产97久久久久久免费| 国外色69视频在线观看| 欧美专区在线播放| 永久555www成人免费| 国模视频一区二区三区| 亚洲人成电影在线播放| 久久久噜噜噜久久| 亚洲精品99久久久久| 国产欧美精品日韩| 欧美精品在线免费观看| 欧美激情极品视频| 草民午夜欧美限制a级福利片| 成人黄色短视频在线观看| 欧美激情视频网| 国产在线播放91| 亚洲国产精品va在线看黑人动漫| 91精品国产自产在线观看永久| 国产精品第三页| 成人精品在线视频| 欧洲s码亚洲m码精品一区| 欧美一级免费看| 7777kkkk成人观看| 久久国产精品影视| 亚洲综合第一页| 91久热免费在线视频| 久久久这里只有精品视频| 91精品国产免费久久久久久| 国产欧美精品xxxx另类| 亚洲另类图片色| 亚洲天堂av在线免费观看| 久99九色视频在线观看| 国产精品99一区| 亚洲精品小视频| 欧美最近摘花xxxx摘花| 欧美精品免费看| 91wwwcom在线观看| 久久99视频精品| 成人午夜一级二级三级| 欧美日韩中文字幕综合视频| 亚洲人成在线免费观看| 日韩精品在线观看一区| 欧美日韩不卡合集视频| 亚洲老头老太hd| 日韩成人在线视频网站| 亚洲国产精品福利| 国模视频一区二区三区| 精品视频久久久久久| 日韩亚洲综合在线| 久久国产精彩视频| 日韩精品在线免费| 久久精品国产96久久久香蕉| 久久影视电视剧凤归四时歌| 亚洲福利小视频| 久久久久久97| 久久久久久免费精品| 国产精品一区二区3区| 国产精品日韩在线播放| 国产一区二区精品丝袜| 亚洲国产91精品在线观看| 欧美成人四级hd版| 欧美性xxxx极品高清hd直播| 91中文字幕一区| 国产suv精品一区二区三区88区| 97av在线视频| 亚洲国产中文字幕在线观看| 17婷婷久久www| 国产精品日韩欧美| 欧美www在线| 国产婷婷成人久久av免费高清| 97视频国产在线| 69久久夜色精品国产7777| 亚洲电影天堂av| 91wwwcom在线观看| 亚洲成人激情在线观看| 久久91亚洲精品中文字幕| 国产成人精彩在线视频九色| 国产精品白嫩初高中害羞小美女| 亚洲欧美国产精品专区久久| 在线日韩第一页| 日韩在线观看免费高清| 国产在线精品成人一区二区三区| 性视频1819p久久| 日韩在线观看电影| 国产精品久久久久77777| 亚洲天堂av电影| 日日狠狠久久偷偷四色综合免费| 成人欧美一区二区三区在线| 亚洲视频专区在线| 92看片淫黄大片欧美看国产片| 欧美一级电影在线| 成人夜晚看av| 综合av色偷偷网| 久久天天躁狠狠躁夜夜躁2014|