Swing Drag & Drop in verschiedenen Varianten

HaukeG

Mitglied
Hallo zusammen,

ich baue gerade eine Applikation in der ich Drag&Drop brauche. Bis jetzt hatte ich das auch immer hin bekommen, aber nun brauche ich verschiedene Arten von Drag & Drop in einem Panel.

Folgendes möchte ich machen innerhalb eines JFrame:

- Links eine JTabel mit x-Datensätzen
- Rechte eine JTabel ohne Datensätze
- Rechts unten ein Image/Label

Nun soll folgendes machbar sein:

a) ich möchte von der linken Tabelle in die rechte Tabelle einzelne Rows kopieren (nicht verschieben und auch nicht mehrere gleichzeitig)
b) in die linke Tabelle darf nichts rein gedroppt werden, auch nicht Zeilen verschieben
c) in die rechte Tabelle darf nur von der linken Tabelle rein geschoben werden
d) die rechte Tabelle soll per Drag and Drop sortiert werden (also Zeilen verschieben)
e) Wenn eine Zeile aus der rechten Tabelle per Drag and Drop auf den Label/Image gezogen wird, soll es aus der rechten Tabelle verschwinden.
f) Zeilen von der linken Tabelle dürfen mehrfach nach rechts übertragen werden


Hintergrund:
Die linke Liste sind alle meine MP3s die ich im System habe.
Rechts ist eine Playlist
Und über das Label möchte ich einzelne Tracks aus der Playlist wieder entfernen.


Es muss mit Drag and Drop funktionieren und nicht über diese Buttons mit "<" "<<" ">" und ">>" die man ja aus dem Internet und anderen Anwendungen kennt.


Ich habe leider gerade kein Minimalbeispiel, da ich dort schon immer recht viel drin rum probiert habe. Ich probiere aber mal ein kleines Beispiel zu erzeugen, wobei die Leute die dieses Problem lösen können, dieses Minimalbeispiel mit zwei Tabellen und einem Label selbst schnell bauen können :)

Vielen Dank und einen schönen Abend wünsche ich allen.
Hauke
 
V

vanny

Gast
Hm,
da ich hier keine Frage sehe, sag ich mal viel Spass beim basteln und danke für die Information:D
 

HaukeG

Mitglied
Hi,

vielen Dank für deinen Beitrag und ich glaube die meisten wissen eigentlich was ich wollte. Aber damit hast du den Beitrag wieder nach oben gebracht. Vielen Dank :)

Also dann fangen wir mal bei dem ersten Problem an:

Wie muss ich das realisieren, dass wenn ich eine Zeile per Drag and Drop aus einer Tabelle auf ein Label ziehe, die Row-Nr bekomme? Gleichzeit darf ich aber aus der zweiten Tabelle KEINE Zeile auf dieses Label droppen.



Vielen Dank,
Hauke
 

HaukeG

Mitglied
Hallo nochmals,

also ich habe jetzt zumindest den ersten Teil mit dem entfernen per Drag and Drop aus der rechten Tabelle realisiert bekommen. Aber ich bin mir nicht so ganz sicher ob das der richtige Weg ist.

Ich habe ein

Java:
    private final DataFlavor localObjectFlavor = new ActivationDataFlavor(String.class, DataFlavor.javaJVMLocalObjectMimeType, "MeineDaten");

so dass ich bei meinem TransferHandler einen String übergeben kann. In diesen String schriebe ich einen Qualifier, ein Trennzeichen und die Zeilennummer die entfernt werden soll (Bsp: REMOVEROW:2).

Bei dem Label habe ich einen anderen TransferHandler angegeben der in der canImport - Methode den String ausliest und prüft, ob dieser mit "REMOVEROW" anfängt und dann in der importData Methode nehme ich den Wert hinter dem Trennzeichen und lösche diese Zeile aus dem TableModel.

So funktioniert es zumindest, nur ich hätte gedacht, das ich dafür einen eigenen DataFlavor erzeugen muss und das die canImport Methode prüft, welcher DataFlavor gerade gedroppt werden soll.

Hier erstmal das Beispiel


Java:
package de.hauke.schwimmbad.application.playground;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;

import javax.activation.ActivationDataFlavor;
import javax.activation.DataHandler;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.TransferHandler;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

public class Testing13 extends JFrame {

    private TransferHandler rightTableHandler = new TableRowToLabelTransferHandler();

    private final DataFlavor localObjectFlavor = new ActivationDataFlavor(String.class, DataFlavor.javaJVMLocalObjectMimeType, "MeineDaten");
    
    private JTable leftTable;
    
    private JTable rightTable;
    
    private JLabel informationLabel;
    
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				new Testing13();
			}
		});
	}

	public Testing13() {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
			e.printStackTrace();
		}

		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		setTitle("Test");
		setSize(800, 800);
		setLocationRelativeTo(null);

		setLayout(null);
		
		// Tabellen erzeugen
		createTableLeft();
		createTableRight();
			
		// Das Label erzeugen mit dem man Items aus der rechten Tabelle entfernen kann
		JLabel destination = new JLabel();
		destination.setBackground(Color.RED);
		destination.setOpaque(true);
		destination.setBounds(600, 550, 100, 100);
		destination.setTransferHandler(new TrashcanTransferHandler());
		add(destination);
		
		// Informationslabel anlegen
		informationLabel = new JLabel("Nichts gedropped");
		informationLabel.setBounds(400, 710, 200, 30);
		add(informationLabel);
		
		setVisible(true);
	}
	
	
	/**
	 * Die linke Tabelle aus der die Items raus kopiert werden koennen
	 */
	private void createTableLeft() {
		String[] columns = { "Spalte 1", "Spalte 2", "Spalte 3" };

		Object[][] rows = new Object[60][3];

		for (int i = 0; i < 60; i++) {
			Object[] row = new Object[3];
			row[0] = "Spalte 1 - Zeile " + i;
			row[1] = "Spalte 2 - Zeile " + i;
			row[2] = "Spalte 3 - Zeile " + i;

			rows[i] = row;
		}

		TableModel model = new DefaultTableModel(rows, columns);
		leftTable = new JTable(model);

		leftTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

		leftTable.setDragEnabled(true);
		// table.setTransferHandler(rightTableHandler);

		RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
		leftTable.setRowSorter(sorter);
		JScrollPane pane = new JScrollPane(leftTable);
		pane.setBounds(10, 10, 350, 700);

		add(pane);
	}
	
	/**
	 * Die rechte "Ziel" Tabelle in die die Items rein gedroppt werden koennen
	 */
	private void createTableRight() {
		String[] columns = { "Spalte 1" , "Spalte 2" , "Spalte 3" };

	    Object[][] rows = new Object[2][3];
	    
	    for(int i = 0 ; i < 2 ; i++) {
	    	Object[] row = new Object[3];
	    	row[0] ="Dummy Daten - Spalte 1 - Zeile " + i;
	    	row[1] ="Dummy Daten - Spalte 2 - Zeile " + i;
	    	row[2] ="Dummy Daten - Spalte 3 - Zeile " + i;
	    	
	    	rows[i] = row;
	    }
	    
		
		TableModel model = new DefaultTableModel(rows, columns);
		rightTable = new JTable(model);
		
		 rightTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		 
		 
		 rightTable.setDragEnabled(true);
		 rightTable.setTransferHandler(rightTableHandler);

		
		RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
		rightTable.setRowSorter(sorter);
		JScrollPane pane = new JScrollPane(rightTable);
		pane.setBounds(400, 10, 350, 200);
		
		add(pane);			
	}

	
	class TrashcanTransferHandler extends TransferHandler {
	
		@Override
		public boolean canImport(TransferSupport arg0) {
					
			// Pruefen was in dem String steht der uebertragen wird. Wenn dieser mit "REMOVEROW" anfaengt, darf
			// hier etwas drauf gedroppt werden
			try {
				if(((String) arg0.getTransferable().getTransferData(localObjectFlavor)).startsWith("REMOVEROW")) {
					return true;
				}
			} catch (Exception e) {
				e.printStackTrace();
			} 

			return false;
		}

		@Override
		public boolean importData(TransferSupport arg0) {
			try {

				String message = (String) arg0.getTransferable().getTransferData(localObjectFlavor);

				// Den Wert hinter dem : ist die Zeilennummer die entfernt werden soll
				Integer row = Integer.valueOf(message.split(":")[1]);
				
				informationLabel.setText("Entferne aus der rechten Tabelle Zeile : " + row);
				
				DefaultTableModel model = (DefaultTableModel) rightTable.getModel();
				model.removeRow(row);
				model.fireTableDataChanged();
				
				} catch (Exception e) {
					e.printStackTrace();
				}
			return super.importData(arg0);
		}
	}
	
	
	/**
	 * Der Transferhandler der die Zeilen aus der rechten Tabelle auf das Label 
	 * dropped
	 * 
	 *
	 */
	class TableRowToLabelTransferHandler extends TransferHandler{
	    
	    @Override 
	    protected Transferable createTransferable(JComponent c) {
	    	
	    	// Die Zeile auslesen 
	        JTable table = (JTable) c;
	        Integer removeRow = table.getSelectedRow();
	        
	        // Die Daten die uebertragen werden bestehen aus einem Qualifier "REMOVEROW", einem Trennzeichen ":"
	        // und der Zeilennummer der rechten Tabelle
	        return new DataHandler("REMOVEROW:"+removeRow, localObjectFlavor.getMimeType());
	    }
	    
	 
	    @Override 
	    public int getSourceActions(JComponent c) {
	        return MOVE;
	    }
	}
	
}


Ich probiere ein wenig weiter, aber irgendwie fühlt sich das etwas merkwürdig an diese Lösung.

Viele grüße,
hauke

@vanny : Laut deiner Signatur soll man kreativ sein, ich glaube das war ich gerade mit dem Quellcode, oder?
 
Zuletzt bearbeitet:

HaukeG

Mitglied
So, nun kommt das nächste Problem:

Wenn ich ein Item von der rechten Tabelle nach unten ziehe, funktioniert es --> es verschwindet aus der Liste.

Wenn ich ein Item von der linken Tabelle nach unten ziehen möchte (rotes Feld), funktioniert es nicht (soll es ja auch nicht). Es kommt aber eine Exception :-(


Das Problem ist aber, dass ich auch kein Item von der linken Tabelle in die rechte schieben kann. Die canImport Methode gibt immer false zurück, bzw
Java:
info.isDataFlavorSupported(leftTableFlavor);

liefert immer false, wobei ich das Transferable Objekt mit diesem Flavor abschicke. Das Beispiel sollte so bei jedem funktionieren.

Viele Grüße,
Hauke

Java:
package de.hauke.schwimmbad.application.playground;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DragSource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Vector;

import javax.activation.ActivationDataFlavor;
import javax.activation.DataHandler;
import javax.swing.DropMode;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.TransferHandler;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.TransferHandler.TransferSupport;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

public class Testing13 extends JFrame {

    private RightTableTransferHandler rightTableHandler = new RightTableTransferHandler();
    private LeftTableTransferHandler leftTableHandler = new LeftTableTransferHandler();

    private final DataFlavor rightTableFlavor = new ActivationDataFlavor(String.class, DataFlavor.javaJVMLocalObjectMimeType, "MeinFlavor1");
    private final DataFlavor leftTableFlavor = new ActivationDataFlavor(Object.class, DataFlavor.javaJVMLocalObjectMimeType, "MeinFlavor2");
    
    private JTable leftTable;
    
    private JTable rightTable;
    
    private JLabel informationLabel;
    
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				new Testing13();
			}
		});
	}

	public Testing13() {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
			e.printStackTrace();
		}

		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		setTitle("Test");
		setSize(800, 800);
		setLocationRelativeTo(null);

		setLayout(null);
		
		// Tabellen erzeugen
		createTableLeft();
		createTableRight();
			
		// Das Label erzeugen mit dem man Items aus der rechten Tabelle entfernen kann
		JLabel destination = new JLabel();
		destination.setBackground(Color.RED);
		destination.setOpaque(true);
		destination.setBounds(600, 550, 100, 100);
		destination.setTransferHandler(new TrashcanTransferHandler());
		add(destination);
		
		// Informationslabel anlegen
		informationLabel = new JLabel("Nichts gedropped");
		informationLabel.setBounds(400, 710, 200, 30);
		add(informationLabel);
		
		setVisible(true);
	}
	
	
	/**
	 * Die linke Tabelle aus der die Items raus kopiert werden koennen
	 */
	private void createTableLeft() {
		String[] columns = { "Spalte 1", "Spalte 2", "Spalte 3" };

		Object[][] rows = new Object[60][3];

		for (int i = 0; i < 60; i++) {
			Object[] row = new Object[3];
			row[0] = "Spalte 1 - Zeile " + i;
			row[1] = "Spalte 2 - Zeile " + i;
			row[2] = "Spalte 3 - Zeile " + i;

			rows[i] = row;
		}

		TableModel model = new DefaultTableModel(rows, columns);
		leftTable = new JTable(model);

		leftTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		leftTable.setTransferHandler(leftTableHandler);
		leftTable.setDragEnabled(true);
		// table.setTransferHandler(rightTableHandler);

		RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
		leftTable.setRowSorter(sorter);
		JScrollPane pane = new JScrollPane(leftTable);
		pane.setBounds(10, 10, 350, 700);

		add(pane);
	}
	
	/**
	 * Die rechte "Ziel" Tabelle in die die Items rein gedroppt werden koennen
	 */
	private void createTableRight() {
		String[] columns = { "Spalte 1" , "Spalte 2" , "Spalte 3" };

	    Object[][] rows = new Object[2][3];
	    
	    for(int i = 0 ; i < 2 ; i++) {
	    	Object[] row = new Object[3];
	    	row[0] ="Dummy Daten - Spalte 1 - Zeile " + i;
	    	row[1] ="Dummy Daten - Spalte 2 - Zeile " + i;
	    	row[2] ="Dummy Daten - Spalte 3 - Zeile " + i;
	    	
	    	rows[i] = row;
	    }
	    
		
		TableModel model = new DefaultTableModel(rows, columns);
		rightTable = new JTable(model);
		
		 rightTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		 rightTable.setDropMode(DropMode.INSERT_ROWS);

		 
		 rightTable.setDragEnabled(true);
		 rightTable.setTransferHandler(rightTableHandler);

		
		RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
		rightTable.setRowSorter(sorter);
		JScrollPane pane = new JScrollPane(rightTable);
		pane.setBounds(400, 10, 350, 200);
		
		add(pane);			
	}

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	/**
	 * Dieser Handler ist fuer das Label zustaendig. Hier duerfen nur
	 * Events aus der rechten Tabelle auflaufen
	 * 
	 * @author Gulich
	 *
	 */
	class TrashcanTransferHandler extends TransferHandler {
	
		@Override
		public boolean canImport(TransferSupport arg0) {
			
			// Pruefen was in dem String steht der uebertragen wird. Wenn dieser mit "REMOVEROW" anfaengt, darf
			// hier etwas drauf gedroppt werden
			try {
				if(((String) arg0.getTransferable().getTransferData(rightTableFlavor)).startsWith("REMOVEROW")) {
					return true;
				}
			} catch (Exception e) {
				e.printStackTrace();
			} 

			return false;
		}

		@Override
		public boolean importData(TransferSupport arg0) {
			try {

				String message = (String) arg0.getTransferable().getTransferData(rightTableFlavor);

				// Den Wert hinter dem : ist die Zeilennummer die entfernt werden soll
				Integer row = Integer.valueOf(message.split(":")[1]);
				
				informationLabel.setText("Entferne aus der rechten Tabelle Zeile : " + row);
				
				DefaultTableModel model = (DefaultTableModel) rightTable.getModel();
				model.removeRow(row);
				model.fireTableDataChanged();
				
				rightTable.setCursor(Cursor.getDefaultCursor());
				leftTable.setCursor(Cursor.getDefaultCursor());
				setCursor(Cursor.getDefaultCursor());
				
				
				} catch (Exception e) {
					e.printStackTrace();
				}
			return super.importData(arg0);
		}
	}
	
	
	
	
	
	
	
	
	
	
	
	
	/**
	 * Der Transferhandler der die Zeilen aus der rechten Tabelle auf das Label 
	 * dropped
	 * 
	 *
	 */
	class RightTableTransferHandler extends TransferHandler{
	    
	    @Override 
	    protected Transferable createTransferable(JComponent c) {
	    	
	    	// Die Zeile aus der rechten Tabelle auslesen 
	        JTable table = (JTable) c;
	        Integer removeRow = table.getSelectedRow();
	        
	        // Die Daten die uebertragen werden bestehen aus einem Qualifier "REMOVEROW", einem Trennzeichen ":"
	        // und der Zeilennummer der rechten Tabelle
	        return new DataHandler("REMOVEROW:"+removeRow, rightTableFlavor.getMimeType());
	    }
	    
	 
	    @Override 
	    public int getSourceActions(JComponent c) {
	        return MOVE;
	    }
	    
	    
	    
	    
	    
	    
	    
	    
	    
	    private int addIndex  = -1;
	    private int addCount  = 0;
	    private JComponent source = null;

	    
	    
	    
	    @Override 
	    public boolean canImport(TransferSupport info) {
	        	
	        JTable t = (JTable)info.getComponent();
	                
	        boolean b = info.isDrop()&&info.isDataFlavorSupported(leftTableFlavor);
	        t.setCursor(b?DragSource.DefaultMoveDrop:DragSource.DefaultMoveNoDrop);
	        
	        System.out.println(b);
	        return b;
	    }
	    
	    
	    @Override 
	    public boolean importData(TransferSupport info) {
	        JTable target = (JTable)info.getComponent();
	        JTable.DropLocation dl  = (JTable.DropLocation)info.getDropLocation();
	        DefaultTableModel model = (DefaultTableModel)target.getModel();
	        
	        
	        int index = dl.getRow();
	        int max = model.getRowCount();
	        
	        
	        if(index<0 || index>max) index = max;
	        
	        addIndex = index;
	        
	        target.setCursor(Cursor.getDefaultCursor());
	        leftTable.setCursor(Cursor.getDefaultCursor());
	        
	        
	        try{
	            Object[] values = (Object[])info.getTransferable().getTransferData(leftTableFlavor);
	            if(source==target) addCount = values.length;
	            for(int i=0;i<values.length;i++) {
	                int idx = index++;
	                model.insertRow(idx, (Vector)values[i]);
	                target.getSelectionModel().addSelectionInterval(idx, idx);
	            }
	            return true;
	        }catch(UnsupportedFlavorException ufe) {
	            ufe.printStackTrace();
	        }catch(java.io.IOException ioe) {
	            ioe.printStackTrace();
	        }
	        return false;
	    } 
	}
	
	
	
	
	
	
	
	
	class LeftTableTransferHandler extends TransferHandler {

	    @Override 
	    protected Transferable createTransferable(JComponent c) {
	        JTable table = (JTable) c;
	        DefaultTableModel model = (DefaultTableModel)table.getModel();
	      
	        return new DataHandler(model.getDataVector().elementAt(table.getSelectedRow()), leftTableFlavor.getMimeType());
	    }
	    
	    @Override 
	    public boolean canImport(TransferSupport info) {
	    	return false;
	    }
	    
	    @Override 
	    public int getSourceActions(JComponent c) {
	        return COPY;
	    }
	    
	
	}
	
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Swing Drag and Drop in JTree aus verschiedenen Listen AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
AmsananKING ListView Drag And Drop AWT, Swing, JavaFX & SWT 0
AmsananKING Drag And Drop Filenames Inside A Listview AWT, Swing, JavaFX & SWT 1
DonBronson Java Graphics bewegbar machen (Drag&Drop) AWT, Swing, JavaFX & SWT 3
M Polygon per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 26
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
F Drag&Drop mit Transparenter Farbe bei PNG AWT, Swing, JavaFX & SWT 0
D JavaFX Pane per Drag&Drop bewegen? AWT, Swing, JavaFX & SWT 2
L JavaFX Drag and Drop funktioniert nicht AWT, Swing, JavaFX & SWT 3
J Drag and Drop von eigenen Objekten AWT, Swing, JavaFX & SWT 3
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
T Swing Drag and Drop für JComponents AWT, Swing, JavaFX & SWT 1
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
F Drag und Drop AWT, Swing, JavaFX & SWT 0
L JavaFX JavaFX Chart Drag and Drop AWT, Swing, JavaFX & SWT 3
D JavaFX Drag&Drop mehrerer TreeViews oder TableViews AWT, Swing, JavaFX & SWT 1
P Drag & Drop zwischen Panels AWT, Swing, JavaFX & SWT 0
U Drag and Drop mit imageview AWT, Swing, JavaFX & SWT 0
U Drag and Drop imageviews AWT, Swing, JavaFX & SWT 8
D SteelSeries in Netbeans als Drag-and-Drop einbinden AWT, Swing, JavaFX & SWT 0
C JTable Drag and Drop von Zeilen innerhalb einer Table AWT, Swing, JavaFX & SWT 2
S Swing Update eine JTabelle nach einer Drag&Drop Operation AWT, Swing, JavaFX & SWT 0
S Swing Suche Drag & Drop Beispiele AWT, Swing, JavaFX & SWT 1
A Drag and Drop mit JAVAFX- Scenebuilder AWT, Swing, JavaFX & SWT 1
R Performance Drag and Drop & Timer AWT, Swing, JavaFX & SWT 3
R Drag and Drop Problem auf Jpanel AWT, Swing, JavaFX & SWT 2
N Swing JTable und Drag und Drop AWT, Swing, JavaFX & SWT 2
A Drag and Drop eigener Objekte AWT, Swing, JavaFX & SWT 7
C Drag and Drop (inventar) AWT, Swing, JavaFX & SWT 15
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5
Iron Monkey JFileChooser - Drag and Drop AWT, Swing, JavaFX & SWT 5
Iron Monkey Nach Drag & Drop die Datei auf Komponent darstellen AWT, Swing, JavaFX & SWT 2
M AWT Drag n Drop-Support für Component AWT, Swing, JavaFX & SWT 5
S Swing Drag&Drop mit TransferHandler und JPanels AWT, Swing, JavaFX & SWT 8
C Swing Simulation von Drag and Drop Events AWT, Swing, JavaFX & SWT 3
H Swing "Drag and Drop" eines JComponent über ein JPanel AWT, Swing, JavaFX & SWT 2
R Drag 'n Drop AWT, Swing, JavaFX & SWT 3
S Selektion bei Drag&Drop AWT, Swing, JavaFX & SWT 4
C Swing Drag and Drop mit Objekten in einem Fenster. AWT, Swing, JavaFX & SWT 9
T SWT Drag&Drop: Eclipse FileTransfer mit Icons AWT, Swing, JavaFX & SWT 14
F Drag & Drop durch Verbindungslinien AWT, Swing, JavaFX & SWT 10
T Swing Drag and Drop - JLabels tauschen statt überschreiben AWT, Swing, JavaFX & SWT 11
S Drag and Drop über 2 Panels AWT, Swing, JavaFX & SWT 2
K JButtons innerhalb eines JPanels verschieben (DRAG&DROP) AWT, Swing, JavaFX & SWT 5
B Drag and Drop AWT, Swing, JavaFX & SWT 6
K Drag and Drop Workbench AWT, Swing, JavaFX & SWT 2
P SWT Eclipse Draw2D Drag and Drop (ruckelt) AWT, Swing, JavaFX & SWT 4
F SWT Drag and Drop im TreeViewer AWT, Swing, JavaFX & SWT 4
B Swing Drag&Drop mit Feedback (Image am Mauszeiger) AWT, Swing, JavaFX & SWT 7
Spin JFrame/ Frame Drag and Drop AWT, Swing, JavaFX & SWT 13
A TransferHandler & Drag n' Drop AWT, Swing, JavaFX & SWT 2
R Drag an Drop JTable Zelle AWT, Swing, JavaFX & SWT 6
D Drag & Drop - node.isRoot AWT, Swing, JavaFX & SWT 3
E Swing Drag n Drop Verschieben von Labels o.ä. AWT, Swing, JavaFX & SWT 10
E Swing Beim Drag & Drop, Drag verbieten?! AWT, Swing, JavaFX & SWT 2
E JTree Autoscroll bei Drag and Drop AWT, Swing, JavaFX & SWT 4
F Swing Problem mit Drag&Drop in JTable AWT, Swing, JavaFX & SWT 4
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
E Drag&Drop zwischen 2 Listen AWT, Swing, JavaFX & SWT 5
0 Swing Drag n' Drop Bug wenn Source und Target gleiche Komponente? AWT, Swing, JavaFX & SWT 4
C Drag and Drop JPanel auf JPanel nach drop erneut verschieben? AWT, Swing, JavaFX & SWT 3
M Swing JTable Drag'n'Drop von Dateien AWT, Swing, JavaFX & SWT 3
M Drag and Drop: Quellfenster AWT, Swing, JavaFX & SWT 2
M Buttons per Drag & Drop im GridBagLayout verschieben AWT, Swing, JavaFX & SWT 6
M Swing JList > Drag & Drop AWT, Swing, JavaFX & SWT 2
C Drag an Drop vom JTree zur JTable AWT, Swing, JavaFX & SWT 4
Z Drag and Drop auf Application AWT, Swing, JavaFX & SWT 3
G Drag and Drop JTree to Canvas AWT, Swing, JavaFX & SWT 7
H Drag&Drop von JComponents AWT, Swing, JavaFX & SWT 6
G JTable drag and drop AWT, Swing, JavaFX & SWT 4
H Drag&Drop mit GWT AWT, Swing, JavaFX & SWT 8
B Swing Drag&Drop einzelner Zellen in einer JTable AWT, Swing, JavaFX & SWT 12
A Swing Drag and Drop TreeNode User Object AWT, Swing, JavaFX & SWT 3
P JList: Reihenfolge der Elemente per Drag'n'Drop ändern. AWT, Swing, JavaFX & SWT 9
K Swing Wie ändere ich die default action für Drag&Drop AWT, Swing, JavaFX & SWT 6
R JLayeredPane - Drag&Drop - mouseDragged AWT, Swing, JavaFX & SWT 6
C JTable mit RowSorter und Drag & Drop: Zeile verschieben AWT, Swing, JavaFX & SWT 4
V SWT TreeViewer Drag'n'Drop LocalSelectionTransfer AWT, Swing, JavaFX & SWT 10
R Swing JLayeredPane - Drag&Drop Positionen vertauschen AWT, Swing, JavaFX & SWT 3
F Drag & Drop mit eigenen Komponenten AWT, Swing, JavaFX & SWT 2
B SWT - Drag & Drop innerhalb einer Table AWT, Swing, JavaFX & SWT 3
S Drag'n'Drop AWT, Swing, JavaFX & SWT 8
E Drag&Drop JTable; Renderer füllt alle Zellen AWT, Swing, JavaFX & SWT 10
M Drag & Drop in Swing (createTransferable) AWT, Swing, JavaFX & SWT 6
T Drag Quelle beim Drop AWT, Swing, JavaFX & SWT 6
A Drag & Drop von Zeilen innerhalb einer Tabelle AWT, Swing, JavaFX & SWT 2
E Drag & Drop von jTree in JList AWT, Swing, JavaFX & SWT 5
P Dateien per Drag&Drop ins Java-Fenster ziehen AWT, Swing, JavaFX & SWT 8
G JTree Node ggf. aufklappen bei Drag & Drop? AWT, Swing, JavaFX & SWT 7
J Drag'n Drop imm selben Frame unterbinden AWT, Swing, JavaFX & SWT 3
S Table Row per Drag and Drop in andere Table schieben? AWT, Swing, JavaFX & SWT 14
X wiedermal Drag n Drop AWT, Swing, JavaFX & SWT 2
P Drag & Drop AWT, Swing, JavaFX & SWT 2
X Drag and Drop AWT, Swing, JavaFX & SWT 2
F Drag&Drop Jlist -> JList AWT, Swing, JavaFX & SWT 3
G Drag and Drop mal wieder? AWT, Swing, JavaFX & SWT 2
G Drag And Drop von Component (List, Tree) zum Desktop AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben