دون مزيد من اللغط، دعنا ننتقل مباشرة إلى الكود أيها الأصدقاء، يرجى قراءة التعليقات بعناية.
انسخ رمز الكود كما يلي:
/*عمليات وظيفة النسخ والقص واللصق البسيطة:
اختبار النسخ: أدخل نصًا، وحدد نصًا، وانقر على نسخ، ثم ضع المؤشر على منطقة النص على اليمين، وانقر على لصق. اختبار القص: أدخل نصًا، وحدد نصًا، ثم ضع المؤشر على منطقة النص على اليمين، وانقر على قص.
*/
استيراد javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
العرض التوضيحي للطبقة العامة ينفذ ActionListener
{
JFrame الخاص jf؛
JPanel الخاص p1، p2، p3؛
عنوان JLabel الخاص؛
تحرير JTextArea الخاص، showMsg؛
نسخ ولصق وقص JButton الخاص؛
حافظة الحافظة؛//احصل على حافظة النظام.
عرض عام ()
{
this.init();
}
// تهيئة الواجهة
الحرف الأول الفراغي العام ()
{
jf = new JFrame("نسخ ولصق");
p1 = new JPanel(); // عنوان التخزين
p2 = new JPanel();//التخزين JTextArea showMsg
p3 = new JPanel(); //زر التخزين
title = new JLabel("نسخ ولصق وقص العرض التوضيحي");
تحرير = جديد JTextArea("الرجاء إدخال المحتوى"،15,25);
Edit.setLineWrap(true);
showMsg = new JTextArea(15,25);
showMsg.setLineWrap(true);
showMsg.setEnabled(false);
نسخة = جديد JButton("نسخ");
لصق = جديد JButton("لصق");
قطع = جديد 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(نسخ);
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);
}
// التعامل مع الأحداث
إجراء باطل عام تم تنفيذه (ActionEvent e)
{
إذا (e.getSource () == نسخة)
{
String tempText =edit.getSelectedText(); // اسحب الماوس لتحديد النص
// أنشئ قابلاً للتحويل يمكنه نقل السلسلة المحددة.
StringSelection EditText =
new StringSelection(tempText);
/**
يضبط محتويات الحافظة الحالية على الكائن المحدد القابل للتحويل،
ويسجل مالك الحافظة المحدد كمالك للمحتوى الجديد.
*/
clipboard.setContents(editText,null);
}else if(e.getSource() == قص)
{
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); //حذف النص المحدد من النص1.
}else if(e.getSource() == لصق)
{
المحتويات القابلة للتحويل = clipboard.getContents(this);
نكهة DataFlavor = DataFlavor.stringFlavor؛
إذا (المحتويات.isDataFlavorSupported(نكهة))
{
يحاول
{
سلسلة سلسلة؛
str = (String)contents.getTransferData(flavor);
showMsg.append(str);
}قبض (استثناء على سبيل المثال)
{
ex.printStackTrace();
}
}
}
}
الفراغ العام الثابت الرئيسي (String[] args)
{
عرض جديد();
}
}
الكود بسيط جدًا وسهل الاستخدام، إذا كان لديكم أفكار أفضل، فيرجى التأكد من إخباري بذلك.