В этой статье описываются функции панели, которые могут быть выбраны, перетаскиваются и сброшены изображения, реализованные Java. Поделитесь этим для вашей ссылки, следующим образом:
Я увидел пост на форуме сегодня и надеюсь перетащить фотографии, такие как перетаскивание карт в качелях. Вот самая простая реализация, предоставляющая основную идею.
Импорт javax.swing.*; import javax.swing.filechooser.filenameextensionfilter; import java.awt.*; import java.awt.event.mouseevent; импорт java.awt.event.mouselistener; импорт java.awt.event.mousemotion; форма. Как использовать: дважды щелкните пустое пространство в форме, чтобы открыть диалоговое окно изображения. После открытия картинки вы можете перетаскивать изображение в форме. * / @PuppressWarnings ("Serial") открытый класс DragingFrame Extends jframe { /*** Constructor** @Throws HeadlessException? ? ? */ public DragingFrame () Throws HeadlessException {this.SetDefaultCloseoPeration (exit_on_close); getContentPane (). SetLayout (new BorderLayout ()); getContentPane (). Add (new ImagePanel (), borderlayout.center); } // Вход в программу public static void main (string [] args) бросает исключение {uimanager.setLookAndfeel (uimanager.getSystemlookAndfeelClassName ()); DragingFrame Frame = new DragingFrame (); Frame.setize (400, 300); Frame.SetLocation (300, 300); Frame.SetReSizable (false); frame.settitle ("www.vevb.com Дважды щелкните, чтобы открыть картинку, а затем перетаскивать"); Frame.SetVisible (true); }}/*** Панель, которая может перетаскивать и отбросить изображение*/@spistresswarnings ("serial") class imagepanel extends jpanel {private dragstatus status = dragstatus.ready; // Статус перетаскивания частное изображение изображения; // изображение, которое будет отображаться в частной точке ImagePosition = Новая точка (0, 0), // текущая позиция изображения ImageStartPosition = Новая точка (0, 0), // положение изображения в начале каждого сопротивления (то есть положением после последнего сопротивления) // Положение мыши в начале каждого DRAG ImagePanel () {addMouseListener (new MouseListener () {// Открыть изображение при двойном щелчке мышиной общедоступной void mouseeClicked (mouseevent e) {if (e.getclickcount () == 2) {openmage ();}} // Когда Mouse Cassed, запуска, запуск, запуск, запуска, запуск, то призму-это запуск, и. Записано. == dragstatus.dragging) {status = dragstatus.ready; addmousemotionlistener (new mousemotionlistener () {// java имеет событие перетаскивания, перемещать позицию изображения в этом событии public void mousedragged (mouseevent e) {if (status == dragstatus.dragging) {moveimage (e.getpoint ());}} public void mousemed (mouseee -e) {{{{{}}} {{}}}}}}; } /*** Переместите изображение. На самом деле, рисование выполняется в PaintComponent (), где он просто вычисляет положение изображения, а затем вызывает метод. * * @param точка тока тока. ImagePosition.SetLocation (imageStartPosition.getX () + (point.getX () - mouseStartPosition.getX ()), imemestartPosition.gety () + (point.gety () - mousestartposition.gety ())); Repaint (); } // Откройте изображение private void openImage () {System.out.println ("Открытие изображения ..."); File file = createFileChoser (). GetSelectedFile (); if (file! = null) {image = toolkit.getDefaulttoolkit (). getImage (file.getabSolutePath ()); if (image! = null) {this.repaint (); }}} // Создать диалоговое окно открытого файла private jfilechooser createFileChoser () {jfilechooser chooser = new jfilechooser (); chooser.setDialogTitle («Пожалуйста, выберите файл изображения ...»); chooser.addchoosablefilter (new filenameeextensionfilter («Общий формат изображения», «jpg», «jpeg», «gif», «png»)); chooser.showopendialog (это); вернуть выборщик; } @Override Protected void PaintComponent (Graphics G) {super.paintcomponent (g); if (image! = null) {g.drawimage (image, (int) imageposition.getx (), (int) imageposition.gety (), this); }} private enum dragstatus {ready, перетаскивание}}Эффект бега:
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.