java簡單實現(xiàn)復(fù)制 粘貼 剪切功能代碼分享
更新時間:2023年05月02日 16:43:44 投稿:hebedich
本文給大家分享了一段java編寫的簡單實現(xiàn)復(fù)制粘貼剪切功能的代碼,需要的小伙伴可以直接拿走使用。如有更好的方案,也可以告之本人。
廢話不多說,直接上代碼,小伙伴們仔細(xì)看下注釋吧。
/*簡單的復(fù)制 剪切 粘貼 功能 ?操作:?? ??復(fù)制測試: 輸入文本選擇文本,點擊復(fù)制,然后將光標(biāo)放在右邊的TextArea,點擊粘貼 ??剪切測試:輸入文本選擇文本,然后將光標(biāo)放在右邊的TextArea,點擊剪切?? */ import javax.swing.*; import java.awt.*; import java.awt.datatransfer.*; import java.awt.event.*; public class Demo implements ActionListener { ?private JFrame jf; ?private JPanel p1, p2, p3;?? //上中下 ?private JLabel title; ?private JTextArea edit,showMsg; ?private JButton copy,paste,cut; ?Clipboard clipboard;//獲取系統(tǒng)剪貼板。 ?public Demo() ?{ ??this.init(); ?} ?//界面初始化 ?public void init() ?{ ??jf = new JFrame("復(fù)制粘貼"); ??p1 = new JPanel();?? //存放標(biāo)題 ??p2 = new JPanel();?//存放JTextArea showMsg ??p3 = new JPanel();? //存放 button ??title = new JLabel("復(fù)制粘貼剪切演示"); ??edit = new JTextArea("請輸入內(nèi)容",15,25); ??edit.setLineWrap(true); ??showMsg = new JTextArea(15,25); ??showMsg.setLineWrap(true); ??showMsg.setEnabled(false); ??copy = new JButton("復(fù)制"); ??paste = new JButton("粘貼"); ??cut = new JButton("剪切"); ??clipboard = jf.getToolkit().getSystemClipboard(); ??p1.setLayout(new FlowLayout()); ??p1.setSize(599,30); ??p1.add(title); ??p2.setLayout(new FlowLayout()); ??p2.setBackground(Color.gray); ??p2.add(edit); ??p2.add(showMsg); ??p3.setLayout(new FlowLayout()); ??p3.add(copy); ??p3.add(paste); ??p3.add(cut); ??//添加事件監(jiān)聽機制 ??copy.addActionListener(this); ??paste.addActionListener(this); ??cut.addActionListener(this); ??// this.copyStr(copy); ??jf.add(p1, BorderLayout.NORTH); ??jf.add(p2, BorderLayout.CENTER); ??jf.add(p3, BorderLayout.SOUTH); ??jf.setLocation(400,200); ??jf.setSize(600,450); ??jf.setResizable(false); ??jf.setVisible(true); ?} ?//事件處理 ?public void actionPerformed(ActionEvent e) ?{ ??if(e.getSource() == copy) ??{ ???String tempText = edit.getSelectedText();? //拖動鼠標(biāo)選取文本 ???//創(chuàng)建能傳輸指定 String 的 Transferable。 ???StringSelection editText = ?????new StringSelection(tempText); ???/** ???將剪貼板的當(dāng)前內(nèi)容設(shè)置到指定的 transferable 對象, ???并將指定的剪貼板所有者作為新內(nèi)容的所有者注冊。 ???*/ ???clipboard.setContents(editText,null); ??}else if(e.getSource() == cut) ??{ ???String tempText = edit.getSelectedText(); ???StringSelection editText = ?????new StringSelection(tempText); ???clipboard.setContents(editText,null); ???int start= edit.getSelectionStart(); ???int end? = edit.getSelectionEnd(); ???showMsg.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); ??????showMsg.append(str); ?????}catch(Exception ex) ?????{ ??????ex.printStackTrace(); ?????} ????? } ??} ?} ?public static void main(String[] args) ?{ ??new Demo(); ?} }
代碼很簡單,使用也很方便,小伙伴們有更好的思路的話,請一定要告訴我。
您可能感興趣的文章:
- java實現(xiàn)文本復(fù)制功能
- Java 添加、修改、讀取、復(fù)制、刪除Excel批注的實現(xiàn)
- Java實現(xiàn)inputstream流的復(fù)制代碼實例
- 利用Java實現(xiàn)復(fù)制Excel工作表功能
- Java 圖片復(fù)制功能實現(xiàn)過程解析
- Java對象的復(fù)制三種方式(小結(jié))
- java遞歸實現(xiàn)復(fù)制一個文件夾下所有文件功能
- java將一個目錄下的所有數(shù)據(jù)復(fù)制到另一個目錄下
- java將一個目錄下的所有文件復(fù)制n次
- Java加速讀取復(fù)制超大文件
- 詳解Java中IO字節(jié)流基本操作(復(fù)制文件)并測試性能
- Java 訪問剪切板(復(fù)制,粘貼)的示例
相關(guān)文章
詳解如何使用MongoDB+Springboot實現(xiàn)分布式ID的方法
這篇文章主要介紹了詳解如何使用MongoDB+Springboot實現(xiàn)分布式ID的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09記一次springboot配置redis項目啟動時的一個奇怪的錯誤
這篇文章主要介紹了spring?boot配置redis項目啟動時的一個奇怪的錯誤,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02java使用定時器實現(xiàn)監(jiān)聽數(shù)據(jù)變化
這篇文章主要為大家詳細(xì)介紹了Java如何使用定時器監(jiān)聽數(shù)據(jù)變化,當(dāng)滿足某個條件時(例如沒有數(shù)據(jù)更新)自動執(zhí)行某項任務(wù),有興趣的可以了解下2023-11-11