เพื่อไม่ให้เป็นการเสียเวลา เรามาดูโค้ดกันดีกว่า เพื่อนๆ โปรดอ่านความคิดเห็นอย่างละเอียด
คัดลอกรหัสรหัสดังต่อไปนี้:
/*การทำงานของฟังก์ชันคัดลอก ตัด และวางอย่างง่าย:
การทดสอบการคัดลอก: ป้อนข้อความ เลือกข้อความ คลิกคัดลอก จากนั้นวางเคอร์เซอร์บน TextArea ทางด้านขวา คลิกวาง การทดสอบการตัด: ป้อนข้อความ เลือกข้อความ จากนั้นวางเคอร์เซอร์บน TextArea ทางด้านขวา คลิกตัด
-
นำเข้า javax.swing.*;
นำเข้า java.awt.*;
นำเข้า java.awt.datatransfer.*;
นำเข้า java.awt.event.*;
การสาธิตคลาสสาธารณะใช้ ActionListener
-
JFrame ส่วนตัว jf;
JPanel ส่วนตัว p1, p2, p3; // บน, กลางและล่าง
ชื่อ JLabel ส่วนตัว
แก้ไข JTextArea ส่วนตัว, showMsg;
คัดลอก JButton ส่วนตัว, วาง, ตัด;
คลิปบอร์ดคลิปบอร์ด;//รับคลิปบอร์ดของระบบ
การสาธิตสาธารณะ()
-
นี้.init();
-
// การเริ่มต้นอินเทอร์เฟซ
โมฆะสาธารณะ init()
-
jf = new JFrame("คัดลอกและวาง");
p1 = ใหม่ JPanel(); //ชื่อที่เก็บข้อมูล
p2 = JPanel ใหม่ (); // ที่เก็บข้อมูล JTextArea showMsg
p3 = ใหม่ JPanel(); // ปุ่มจัดเก็บข้อมูล
title = new JLabel("คัดลอก วาง และตัดสาธิต");
edit = new JTextArea("กรุณาระบุเนื้อหา",15,25);
edit.setLineWrap(จริง);
showMsg = JTextArea ใหม่ (15,25);
showMsg.setLineWrap(จริง);
showMsg.setEnabled(เท็จ);
คัดลอก = JButton ใหม่ ("คัดลอก");
วาง = JButton ใหม่ ("วาง");
ตัด = JButton ใหม่ ("ตัด");
คลิปบอร์ด = jf.getToolkit().getSystemClipboard();
p1.setLayout(FlowLayout ใหม่());
p1.setSize(599,30);
p1.add(หัวเรื่อง);
p2.setLayout(FlowLayout ใหม่());
p2.setBackground(สี.สีเทา);
p2.add(แก้ไข);
p2.add(showMsg);
p3.setLayout(FlowLayout ใหม่());
p3.add (คัดลอก);
p3.add(วาง);
p3.add (ตัด);
//เพิ่มกลไกการฟังเหตุการณ์
copy.addActionListener(นี่);
paste.addActionListener (สิ่งนี้);
cut.addActionListener (นี้);
// this.copyStr(คัดลอก);
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(เท็จ);
jf.setVisible(จริง);
-
//การจัดการเหตุการณ์
การกระทำที่เป็นโมฆะสาธารณะดำเนินการ (ActionEvent e)
-
ถ้า (e.getSource() == คัดลอก)
-
String tempText = edit.getSelectedText(); //ลากเมาส์เพื่อเลือกข้อความ
//สร้าง Transferable ที่สามารถถ่ายโอน String ที่ระบุได้
StringSelection แก้ไขข้อความ =
ใหม่ StringSelection (tempText);
-
ตั้งค่าเนื้อหาปัจจุบันของคลิปบอร์ดเป็นวัตถุที่สามารถถ่ายโอนได้ที่ระบุ
และลงทะเบียนเจ้าของคลิปบอร์ดที่ระบุเป็นเจ้าของเนื้อหาใหม่
-
คลิปบอร์ด.setContents(แก้ไขข้อความ,null);
} อื่น if(e.getSource() == ตัด)
-
สตริง tempText = edit.getSelectedText();
StringSelection แก้ไขข้อความ =
ใหม่ StringSelection (tempText);
คลิปบอร์ด.setContents(แก้ไขข้อความ,null);
int start= edit.getSelectionStart();
int end = edit.getSelectionEnd();
showMsg.replaceRange("",start,end); //ลบข้อความที่เลือกออกจาก Text1.
} อื่น ๆ if(e.getSource() == paste)
-
เนื้อหาที่ถ่ายโอนได้ = clipboard.getContents(this);
รส DataFlavor= DataFlavor.stringFlavor;
ถ้า (content.isDataFlavorSupported (รส))
-
พยายาม
-
สตริง str;
str = (สตริง) contents.getTransferData (รส);
showMsg.ผนวก(str);
} catch (ข้อยกเว้นเช่น)
-
เช่น printStackTrace();
-
-
-
-
โมฆะสาธารณะคง main (String [] args)
-
สาธิตใหม่();
-
-
รหัสนี้เรียบง่ายและใช้งานง่ายมาก หากพวกคุณมีไอเดียที่ดีกว่านี้ โปรดบอกฉันด้วย