تنفيذ جافا لمثال السحب والإسقاط
يتم تنفيذ وظيفة السحب والإسقاط في Swing، والكود بسيط جدًا ويحتوي على تعليقات، وانظر بنفسك، ويكون تأثير التشغيل كما يلي:
انسخ رمز الكود كما يلي:
حزمة كوم؛
import java.awt.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetAdapter;
import java.awt.dnd.DropTargetDropEvent;
استيراد java.io.File؛
import java.util.List;
استيراد javax.swing.*;
/**
* أبسط مثال على كود السحب والإفلات في جافا
* @ المؤلف ليو شيانان
* 24 يناير 2013
*/
يمتد DragTest من الفئة العامة إلى JFrame
{
لوحة JPanel؛ // لوحة لقبول السحب والإسقاط
اختبار السحب العام ()
{
لوحة = جديد JPanel();
Panel.setBackground(Color.YELLOW);
getContentPane().add(panel, BorderLayout.CENTER);
setSize(500, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(400, 200);
setTitle("أبسط مثال للسحب والإسقاط: اسحب الملف أدناه وأفلته (20130124)");
السحب ()؛ // تمكين السحب والإفلات
}
يلقي الفراغ الرئيسي العام (String[] args) استثناءً
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//ضبط الجلد
جديد DragTest().setVisible(true);;
}
سحب الفراغ العام () // طريقة السحب المحددة
{
// تمثل اللوحة عنصر التحكم الذي سيتم سحبه وإسقاطه
DropTarget جديد (لوحة، DnDConstants.ACTION_COPY_OR_MOVE، DropTargetAdapter () جديد
{
@تجاوز
إسقاط الفراغ العام (DropTargetDropEvent dtde)// أعد كتابة طريقة إسقاط المحول
{
يحاول
{
if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))// إذا كان تنسيق الملف المسحوب مدعومًا
{
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);// تلقي البيانات المسحوبة
List<File> list = (List<File>) (dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor));
درجة حرارة السلسلة = ""؛
ل(ملف الملف: قائمة)
temp+=file.getAbsolutePath()+";/n";
JOptionPane.showMessageDialog(null, temp);
dtde.dropComplete(true);// يشير إلى اكتمال عملية السحب والإفلات
}
آخر
{
dtde.rejectDrop(); // بخلاف ذلك، ارفض البيانات المسحوبة
}
}
قبض (الاستثناء ه)
{
printStackTrace();
}
}
});
}
}