java簡單實現(xiàn)復制 粘貼 剪切功能代碼分享
更新時間:2023年05月02日 16:43:44 投稿:hebedich
本文給大家分享了一段java編寫的簡單實現(xiàn)復制粘貼剪切功能的代碼,需要的小伙伴可以直接拿走使用。如有更好的方案,也可以告之本人。
廢話不多說,直接上代碼,小伙伴們仔細看下注釋吧。
/*簡單的復制 剪切 粘貼 功能
?操作:??
??復制測試: 輸入文本選擇文本,點擊復制,然后將光標放在右邊的TextArea,點擊粘貼
??剪切測試:輸入文本選擇文本,然后將光標放在右邊的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("復制粘貼");
??p1 = new JPanel();?? //存放標題
??p2 = new JPanel();?//存放JTextArea showMsg
??p3 = new JPanel();? //存放 button
??title = new JLabel("復制粘貼剪切演示");
??edit = new JTextArea("請輸入內(nèi)容",15,25);
??edit.setLineWrap(true);
??showMsg = new JTextArea(15,25);
??showMsg.setLineWrap(true);
??showMsg.setEnabled(false);
??copy = new JButton("復制");
??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();? //拖動鼠標選取文本
???//創(chuàng)建能傳輸指定 String 的 Transferable。
???StringSelection editText =
?????new StringSelection(tempText);
???/**
???將剪貼板的當前內(nèi)容設置到指定的 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)文本復制功能
- Java 添加、修改、讀取、復制、刪除Excel批注的實現(xiàn)
- Java實現(xiàn)inputstream流的復制代碼實例
- 利用Java實現(xiàn)復制Excel工作表功能
- Java 圖片復制功能實現(xiàn)過程解析
- Java對象的復制三種方式(小結(jié))
- java遞歸實現(xiàn)復制一個文件夾下所有文件功能
- java將一個目錄下的所有數(shù)據(jù)復制到另一個目錄下
- java將一個目錄下的所有文件復制n次
- Java加速讀取復制超大文件
- 詳解Java中IO字節(jié)流基本操作(復制文件)并測試性能
- Java 訪問剪切板(復制,粘貼)的示例
相關文章
詳解如何使用MongoDB+Springboot實現(xiàn)分布式ID的方法
這篇文章主要介紹了詳解如何使用MongoDB+Springboot實現(xiàn)分布式ID的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
記一次springboot配置redis項目啟動時的一個奇怪的錯誤
這篇文章主要介紹了spring?boot配置redis項目啟動時的一個奇怪的錯誤,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
java使用定時器實現(xiàn)監(jiān)聽數(shù)據(jù)變化
這篇文章主要為大家詳細介紹了Java如何使用定時器監(jiān)聽數(shù)據(jù)變化,當滿足某個條件時(例如沒有數(shù)據(jù)更新)自動執(zhí)行某項任務,有興趣的可以了解下2023-11-11

