91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中swing的drag and drop源程序示例代碼

發布時間:2021-12-28 09:28:35 來源:億速云 閱讀:134 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關java中swing的drag and drop源程序示例代碼,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

java swing的drag and drop源程序 

import Java.awt.*;
import java.io.*;
import java.util.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.awt.datatransfer.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
public class ListDemo extends JFrame
  implements ListselectionListener
{
  private DroppableList list;
  private JTextField fileName;
  public ListDemo()
  {
  super("ListDemo");
  //Create the list and put it in a scroll pane
  list = new DroppableList();
  DefaultListModel listModel = (DefaultListModel)list.getModel();
  list.setCellRenderer(new CustomCellRenderer());
  list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  list.setSelectedIndex(0);
  list.addListSelectionListener(this);
  JScrollPane listScrollPane = new JScrollPane(list);
  String dirName = new String("");
  String filelist[] = new File(dirName).list();
  for (int i=0; i < filelist.length ; i++ )
  {
  String thisFileSt = dirName+filelist[i];
  File thisFile = new File(thisFileSt);
  if (thisFile.isDirectory())
  continue;
  try {
  listModel.addElement(makeNode(thisFile.getName(),
  thisFile.toURL().toString(),
  thisFile.getAbsolutePath()));
  } catch (java.NET.MalformedURLException e){
  }
  }
  fileName = new JTextField(50);
  String name = listModel.getElementAt(
  list.getSelectedIndex()).toString();
  fileName.setText(name);
  file://Create a panel that uses FlowLayout (the default).
  JPanel buttonPane = new JPanel();
  buttonPane.add(fileName);
  Container contentPane = getContentPane();
  contentPane.add(listScrollPane, BorderLayout.CENTER);
  contentPane.add(buttonPane, BorderLayout.NORTH);
  }
  public void valueChanged(ListSelectionEvent e)
  {
  if (e.getValueIsAdjusting() == false)
  {
  fileName.setText("");
  if (list.getSelectedIndex() != -1)
  {
  String name = list.getSelectedValue().toString();
  fileName.setText(name);
  }
  }
  }
  private static Hashtable makeNode(String name,
  String url, String strPath)
  {
  Hashtable hashtable = new Hashtable();
  hashtable.put("name", name);
  hashtable.put("url", url);
  hashtable.put("path", strPath);
  return hashtable;
  }
  public class DroppableList extends JList
  implements DropTargetListener, DragsourceListener, DragGestureListener
  {
  DropTarget dropTarget = new DropTarget (this, this);
  DragSource dragSource = DragSource.getDefaultDragSource();
  public DroppableList()
  {
  dragSource.createDefaultDragGestureRecognizer(
  this, DnDConstants.ACTION_COPY_OR_MOVE, this);
  setModel(new DefaultListModel());
  }
  public void dragDropEnd(DragSourceDropEvent DragSourceDropEvent){}
  public void dragEnter(DragSourceDragEvent DragSourceDragEvent){}
  public void dragExit(DragSourceEvent DragSourceEvent){}
  public void dragOver(DragSourceDragEvent DragSourceDragEvent){}
  public void dropActionChanged(DragSourceDragEvent DragSourceDragEvent){}
  public void dragEnter (DropTargetDragEvent dropTargetDragEvent)
  {
  dropTargetDragEvent.acceptDrag (DnDConstants.ACTION_COPY_OR_MOVE);
  }
  public void dragExit (DropTargetEvent dropTargetEvent) {}
  public void dragOver (DropTargetDragEvent dropTargetDragEvent) {}
  public void dropActionChanged (DropTargetDragEvent dropTargetDragEvent){}
  public synchronized void drop (DropTargetDropEvent dropTargetDropEvent)
  {
  try
  {
  Transferable tr = dropTargetDropEvent.getTransferable();
  if (tr.isDataFlavorSupported (DataFlavor.javaFileListFlavor))
  {
  dropTargetDropEvent.acceptDrop (
  DnDConstants.ACTION_COPY_OR_MOVE);
  java.util.List fileList = (java.util.List)
  tr.getTransferData(DataFlavor.javaFileListFlavor);
  Iterator iterator = fileList.iterator();
  while (iterator.hasNext())
  {
  File file = (File)iterator.next();
  Hashtable hashtable = new Hashtable();
  hashtable.put("name",file.getName());
  hashtable.put("url",file.toURL().toString());
  hashtable.put("path",file.getAbsolutePath());
  ((DefaultListModel)getModel()).addElement(hashtable);
  }
  dropTargetDropEvent.getDropTargetContext().dropComplete(true);
  } else {
  System.err.println ("Rejected");
  dropTargetDropEvent.rejectDrop();
  }
  } catch (IOException io) {
  io.printStackTrace();
  dropTargetDropEvent.rejectDrop();
  } catch (UnsupportedFlavorException ufe) {
  ufe.printStackTrace();
  dropTargetDropEvent.rejectDrop();
  }
  }
  public void dragGestureRecognized(DragGestureEvent dragGestureEvent)
  {
  if (getSelectedIndex() == -1)
  return;
  object obj = getSelectedValue();
  if (obj == null) {
  // Nothing selected, nothing to drag
  System.out.println ("Nothing selected - beep");
  getToolkit().beep();
  } else {
  Hashtable table = (Hashtable)obj;
  FileSelection transferable =
  new FileSelection(new File((String)table.get("path")));
  dragGestureEvent.startDrag(
  DragSource.DefaultCopyDrop,
  transferable,
  this);
  }
  }
  }
  public class CustomCellRenderer implements ListCellRenderer
  {
  DefaultListCellRenderer listCellRenderer =
  new DefaultListCellRenderer();
  public Component getListCellRendererComponent(
  JList list, Object value, int index,
  boolean selected, boolean hasFocus)
  {
  listCellRenderer.getListCellRendererComponent(
  list, value, index, selected, hasFocus);
  listCellRenderer.setText(getValueString(value));
  return listCellRenderer;
  }
  private String getValueString(Object value)
  {
  String returnString = "null";
  if (value != null) {
  if (value instanceof Hashtable) {
  Hashtable h = (Hashtable)value;
  String name = (String)h.get("name");
  String url = (String)h.get("url");
  returnString = name + " ==> " + url;
  } else {
  returnString = "X: " + value.toString();
  }
  }
  return returnString;
  }
  }
  public class FileSelection extends Vector implements Transferable
  {
  final static int FILE = 0;
  final static int STRING = 1;
  final static int PLAIN = 2;
  DataFlavor flavors[] = {DataFlavor.javaFileListFlavor,
  DataFlavor.stringFlavor,
  DataFlavor.plainTextFlavor};
  public FileSelection(File file)
  {
  addElement(file);
  }
  /* Returns the array of flavors in which it can provide the data. */
  public synchronized DataFlavor[] getTransferDataFlavors() {
   return flavors;
  }
  /* Returns whether the requested flavor is supported by this object. */
  public boolean isDataFlavorSupported(DataFlavor flavor) {
  boolean b  = false;
  b |=flavor.equals(flavors[FILE]);
  b |= flavor.equals(flavors[STRING]);
  b |= flavor.equals(flavors[PLAIN]);
   return (b);
  }
  /**
  * If the data was requested in the "java.lang.String" flavor,
  * return the String representing the selection.
  */
  public synchronized Object getTransferData(DataFlavor flavor)
   throws UnsupportedFlavorException, IOException {
   if (flavor.equals(flavors[FILE])) {
    return this;
   } else if (flavor.equals(flavors[PLAIN])) {
    return new StringReader(((File)elementAt(0)).getAbsolutePath());
   } else if (flavor.equals(flavors[STRING])) {
    return((File)elementAt(0)).getAbsolutePath();
   } else {
    throw new UnsupportedFlavorException(flavor);
   }
  }
  }
  public static void main(String s[])
  {
  JFrame frame = new ListDemo();
  frame.addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent e) {
  System.exit(0);
  }
  });
  frame.pack();
  frame.setVisible(true);
  }
}

關于“java中swing的drag and drop源程序示例代碼”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇平县| 岗巴县| 西青区| 柘荣县| 含山县| 玛沁县| 疏勒县| 德化县| 横峰县| 江孜县| 梁河县| 县级市| 德惠市| 鹰潭市| 怀安县| 巨鹿县| 中方县| 汉中市| 英德市| 白朗县| 额尔古纳市| 凤翔县| 融水| 栾城县| 广德县| 夹江县| 同德县| 额尔古纳市| 平南县| 泾源县| 望都县| 高阳县| 赣州市| 台山市| 惠安县| 全南县| 依兰县| 静宁县| 巴中市| 乐平市| 尼木县|