Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Drag & Drop для объетов собственного класса


Автор: albert21 26.11.2009, 13:31
Всем привет.

Не так давно начал своё знакомство с JAVA, столкнулся с проблемой реализации перетаскивания объектов своего класса. В книгах и примерах как правило рассматривают варианты с текстом или картинкой. Но я не нашёл примера для объектов класса собственной разработки.

Задача:
У меня есть класс, который рисует прямоугольник:
Код

class RectangleMaker extends ShapeMaker
{
   public RectangleMaker()
   {
      super(2);
   }

   public Shape makeShape(Point2D[] p)
   {
      Rectangle2D s = new Rectangle2D.Double();
      s.setFrameFromDiagonal(p[0], p[1]);
      return s;
   }

   public String toString()
   {
       return "Rectangle";
   }
}


Я создаю на форме JList, который содержит в качесве элементов экземпляры класса RectangleMaker.
Необходимо мышью перетащить элемент JList на "полотно" (в качестве полотна можно рассматривать ещё один JList или JFrame, не суть), при отпускании мыши по идее на полотне должен отрисоваться прямоугольник.

Я пытался сделать по книжке, создал наследника Transferable, наследника ShapeTransferHandler и т.д.
В результате генериться исключение, которое говорит мне, что не поддерживается DataFlavor для моего класса.


Нет ли примера реализации подобной задачи? Объясните пожалуйста как добиться нормальной работы механизма Drag & Drop.

Автор: albert21 27.11.2009, 10:29
Проблемный код в архиве

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)