java簡略完成復制 粘貼 剪切功效代碼分享。本站提示廣大學習愛好者:(java簡略完成復制 粘貼 剪切功效代碼分享)文章只能為提供參考,不一定能成為您想要的結果。以下是java簡略完成復制 粘貼 剪切功效代碼分享正文
空話不多說,直接上代碼,小同伴們細心看下正文吧。
/*簡略的復制 剪切 粘貼 功效
操作:
復制測試: 輸出文本選擇文本,點擊復制,然後將光標放在左邊的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;//獲得體系剪貼板。
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("請輸出內容",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);
//添加事宜監聽機制
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(); //拖動鼠標拔取文本
//創立能傳輸指定 String 的 Transferable。
StringSelection editText =
new StringSelection(tempText);
/**
將剪貼板確當前內容設置到指定的 transferable 對象,
並將指定的剪貼板一切者作為新內容的一切者注冊。
*/
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();
}
}
代碼很簡略,應用也很便利,小同伴們有更好的思緒的話,請必定要告知我。