SWT Eclipse Draw2D Drag and Drop (ruckelt)

Pantoi

Aktives Mitglied
Hallo, wie in einem anderen Thread bereits angekündigt, ruckelt das Ziehen der Figures bei mir.
Ich hab das Drag and Drop zZ so gelöst:

Java:
package gui.viewpart;

import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.FigureCanvas;
import org.eclipse.draw2d.MouseEvent;
import org.eclipse.draw2d.MouseListener;
import org.eclipse.draw2d.MouseMotionListener;
import org.eclipse.draw2d.RoundedRectangle;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.wb.swt.SWTResourceManager;

public class D2Drag extends ViewPart {
	public D2Drag() {
	}

	private FigureCanvas figureCanvas;
	public static final String ID = "d2drag"; //$NON-NLS-1$
	public Point point;
	private Figure dragSource;
	private Figure root;

	/**
	 * Create contents of the view part
	 * 
	 * @param parent
	 */
	@Override
	public void createPartControl(Composite parent) {
		Composite container = new Composite(parent, SWT.NONE);
		container.setLayout(new FillLayout());
		this.figureCanvas = new FigureCanvas(container, SWT.NONE);
		figureCanvas.setBackground(SWTResourceManager
				.getColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));
		populateCanvas();
	}

	/**
* 
*/
	private void populateCanvas() {
		root = new Figure();
		root.setOpaque(false);
		root.setBounds(new Rectangle(0, 0, 575, 350));

		Figure figure = new Figure();
		figure.setBackgroundColor(Display.getCurrent().getSystemColor(
				SWT.COLOR_RED));
		figure.setBounds(new Rectangle(0,0,100,100));
		RoundedRectangle base = new RoundedRectangle();
		base.setBackgroundColor(Display.getCurrent().getSystemColor(
				SWT.COLOR_TITLE_BACKGROUND_GRADIENT));
		base.setBounds(new Rectangle(0, 0, 100, 100));
		figure.add(base);

		// Feststellen ob eine Komponente ausgewählt wird (bei mousePressed)
		figure.addMouseListener(new MouseListener() {

			@Override
			public void mouseDoubleClicked(MouseEvent arg0) {

			}

			@Override
			public void mousePressed(MouseEvent arg0) {

				dragSource = (Figure) arg0.getSource();

			}

			@Override
			public void mouseReleased(MouseEvent arg0) {
				// nach drag die source zurücksetzen
				dragSource = null;
			}
		});

		root.add(figure);
		
		root.addMouseMotionListener(new MouseMotionListener() {

			@Override
			public void mouseDragged(MouseEvent arg0) {
				dragSource.setLocation(arg0.getLocation());

			}

			@Override
			public void mouseEntered(MouseEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void mouseExited(MouseEvent arg0) {
			}

			@Override
			public void mouseHover(MouseEvent arg0) {

			}

			@Override
			public void mouseMoved(MouseEvent arg0) {

			}

		});

		root.addMouseMotionListener(new MouseMotionListener() {

			@Override
			public void mouseDragged(MouseEvent arg0) {

				dragSource.setLocation(arg0.getLocation());

			}

			@Override
			public void mouseEntered(MouseEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void mouseExited(MouseEvent arg0) {
			}

			@Override
			public void mouseHover(MouseEvent arg0) {

			}

			@Override
			public void mouseMoved(MouseEvent arg0) {

			}

		});
		figureCanvas.setContents(root);
	}

	@Override
	public void setFocus() {
		// TODO Auto-generated method stub
		
	}
}

Vielleicht gehe ich auch drag & drop falsch an... hilfe ist gern gesehen :)
 

Wildcard

Top Contributor
Sowohl GEF als auch Draw2D, als auch Graphiti basieren auf Draw2D und alle supporten Drag'n'Drop problemlos.
Ich habe mir mal kurz den Zest Quellcode angesehen (Zest ist am kleinsten), aber auf Anhieb keinen großen Unterschied in der Drag'n'Drop Implementierung festgestellt (ausser das die von Zest natürlich wesentlich vollständiger ist).
Aber wie auch immer, schau dir den Unterscheid einfach selbst mal an:
Java:
    public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setLayout(new FillLayout());
        Graph g = new Graph(shell, SWT.NONE);
        GraphNode item = new GraphNode(g, SWT.NONE);
        item.setText("A Node");
		shell.setSize(500, 500);
		shell.setVisible(true);
		
		while (!shell.isDisposed ()) {
			if (!display.readAndDispatch ()) display.sleep ();
		}
		display.dispose();
	}

Warum hast du dich eigentlich dafür entschieden selbst mit Draw2D zu Zeichnen als eines der 'Enduserframeworks' zu verwenden?
 

lumo

Top Contributor
was würdest du als 'Enduserframework' bezeichnen?

so weit ich das gesehen habe hat zest nur ein paar layout manager,
graphiti ist für graphen... wenn jemand also eigene controls schreiben will muss er wohl auf draw2d zurückgreifen...
da schafft man in nem tag schon graphisch gute & interaktive sachen...
 

Wildcard

Top Contributor
Alle basieren auf Draw2D. GEF ist die generische Infrastruktur für grafische Editoren, Draw2D die Zeichen/Event Ebene.

Zest ist super wenn man mit wenig Code eine schöne Visualisierung, oder einen einfachen Editor haben will. Deutlich mehr als ein paar Layout Manager wie du schreibst. Man kann es sich in etwa so vorstellen:
Zest ist zu Draw2D wie JFace zu SWT.
Zest - Eclipsepedia
Komplexe Editoren würde ich eher mit Graphiti, reinem GEF, oder GMF entwickeln.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
Encera Java FX im Eclipse-Marketplace nichtmehr auffindbar AWT, Swing, JavaFX & SWT 6
CodingBerlin JavaFX Programm läuft nur unter Eclipse AWT, Swing, JavaFX & SWT 1
D Verschieden Scenen ansprechen mit dem Scene Builder und JavaFX (Eclipse) AWT, Swing, JavaFX & SWT 16
G javafx build.fxbuild in eclipse und ANT AWT, Swing, JavaFX & SWT 9
D runnable Jar mit Javafx erstellen(Eclipse) AWT, Swing, JavaFX & SWT 10
C JavaFX mit CSS in Eclipse AWT, Swing, JavaFX & SWT 2
S Swing Schrift sehr klein Ubuntu/eclipse AWT, Swing, JavaFX & SWT 18
A Eclipse Windowbuilder Frameanzeige falsch AWT, Swing, JavaFX & SWT 3
C JavaFX Veränderungen in Scenebuilder in Eclipse als Quellcode anzeigen lassen AWT, Swing, JavaFX & SWT 11
VPChief Swing Eclipse: Nach Exportieren, Button funktioniert nicht mehr AWT, Swing, JavaFX & SWT 26
VPChief Eclipse: Projekt mit src ordner exportieren. AWT, Swing, JavaFX & SWT 76
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
F Kein JavaFX mehr im Eclipse Wizard AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
B Swing Eclipse is running under 0, but this Java project has a 1.6 Java compliance level, so WindowBuilder AWT, Swing, JavaFX & SWT 2
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
R JavaFX lässt sich nicht in Eclipse einbinden AWT, Swing, JavaFX & SWT 4
S download WindowBuilder Pro Eclipse AWT, Swing, JavaFX & SWT 1
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
I JAVAFX - CSS - automatische Property- und Methoden-Vorlagen in Eclipse AWT, Swing, JavaFX & SWT 17
I JAVA 8, JAVAFX und Eclipse – muss Eclipse extra eingerichtet werden? AWT, Swing, JavaFX & SWT 9
Z ProgressBar in Eclipse mit Wizard page? AWT, Swing, JavaFX & SWT 1
C Applet Applet funktioniert in Eclipse aber nicht in Browser AWT, Swing, JavaFX & SWT 1
J JavaFX Anwendung läuft in eclipse, nicht aber exportiert AWT, Swing, JavaFX & SWT 2
R Eclipse GUI Programmieren AWT, Swing, JavaFX & SWT 8
P Ubuntu - Eclipse - Windowbuilder AWT, Swing, JavaFX & SWT 0
M 3D-Grafik Mac Java 3D in Eclipse Exception AWT, Swing, JavaFX & SWT 0
O Eclipse Hitbox(en) AWT, Swing, JavaFX & SWT 6
D Robot Programm mit Escape abbrechen (aus Eclipse heraus) AWT, Swing, JavaFX & SWT 2
M LookAndFeel Oberfläche wie Eclipse/Business Objects oder Solvatio AWT, Swing, JavaFX & SWT 2
N Programm läuft perfekt in Eclipse aber nicht in .JAR AWT, Swing, JavaFX & SWT 3
T SWT benötige den richtigen SWT style --> org.eclipse.swt.SWT.* AWT, Swing, JavaFX & SWT 2
C Eclipse Filter-Muster AWT, Swing, JavaFX & SWT 2
H org.eclipse.swt.widgets.Scale MouseRelease listener AWT, Swing, JavaFX & SWT 1
H org.eclipse.swt.Slider ohne Buttons AWT, Swing, JavaFX & SWT 1
H org.eclipse.swt.widgets.Slider und negative Werte AWT, Swing, JavaFX & SWT 3
L Eclipse Fehler besser zu verstehen!!! AWT, Swing, JavaFX & SWT 4
B JAVAFX und CSS Datei in Eclipse AWT, Swing, JavaFX & SWT 4
M Swing in Eclipse AWT, Swing, JavaFX & SWT 1
A Eclipse Windowbuilder AWT, Swing, JavaFX & SWT 2
B JavaFX FXML - Eclipse einrichten AWT, Swing, JavaFX & SWT 2
G Eclipse: Design Tab wird nicht mehr angezeigt AWT, Swing, JavaFX & SWT 4
S Swing SplitButton wie in Eclipse AWT, Swing, JavaFX & SWT 5
P JApplet verhält sich im Browser anders als im Eclipse (AppletViewer) AWT, Swing, JavaFX & SWT 3
A Kinect und Eclipse AWT, Swing, JavaFX & SWT 2
K Eclipse Layout (Gimp Layout, Tiled Layout...) AWT, Swing, JavaFX & SWT 4
J SWING - Programm ohne Eclipse etc. starten AWT, Swing, JavaFX & SWT 7
J SWT in eclipse importieren AWT, Swing, JavaFX & SWT 11
K Eclipse-Java Export/Import mit Oberfläche AWT, Swing, JavaFX & SWT 2
T eclipse.swt.widgets saveState NPE AWT, Swing, JavaFX & SWT 5
V Laden einer Bitmap / Eclipse-Problem? AWT, Swing, JavaFX & SWT 4
K 2D-Grafik Punkt in Eclipse AWT, Swing, JavaFX & SWT 4
S JavaFX 2.0 in Eclipse RAP??? AWT, Swing, JavaFX & SWT 6
M Eclipse-Platform Combo-Binding für User-Einträge AWT, Swing, JavaFX & SWT 9
D VE in Eclipse mag einfach nicht funktionieren AWT, Swing, JavaFX & SWT 5
S FileFilter Problem Eclipse AWT, Swing, JavaFX & SWT 7
V Eclipse View Right-Click Menu hinzufügen AWT, Swing, JavaFX & SWT 2
lumo SWT Exception in thread "main" org.eclipse.swt.SWTError: No more handles AWT, Swing, JavaFX & SWT 3
T SWT Drag&Drop: Eclipse FileTransfer mit Icons AWT, Swing, JavaFX & SWT 14
M GEF und Eclipse Plugin schwierigkeiten AWT, Swing, JavaFX & SWT 2
B Debugging in Eclipse, Aufrufreihenfolge AWT, Swing, JavaFX & SWT 3
E Wo findet man: org.eclipse.core.runtime.ListenerList AWT, Swing, JavaFX & SWT 4
S [Eclipse RCP] Relativer Pfad AWT, Swing, JavaFX & SWT 8
Binary.Coder Netbeans GUI zu Eclipse (schon gegooglet und einiges ausprobiert). AWT, Swing, JavaFX & SWT 4
G Große dynamische ContextMenus erzeugen (Eclipse RCP) AWT, Swing, JavaFX & SWT 4
Crashbreaker SWT Frames wie bei Eclipse AWT, Swing, JavaFX & SWT 43
J Swing Pro WindowBuilder in Eclipse AWT, Swing, JavaFX & SWT 2
D Problem mit SmartGWT (2.4) und Eclipse (3.6) AWT, Swing, JavaFX & SWT 6
J SWT JFace Tree in Section unsichtbar (Eclipse Forms) AWT, Swing, JavaFX & SWT 5
M 3D-Grafik Java3D-Application als executable .jar exportieren (Eclipse) AWT, Swing, JavaFX & SWT 5
K SWT oder AWT als Download für Eclipse AWT, Swing, JavaFX & SWT 5
dzim SWT Layout mit Sections aus Eclipse Forms AWT, Swing, JavaFX & SWT 17
A SWT Eclipse JFace Binding TreeViewer AWT, Swing, JavaFX & SWT 4
A Suche: Eclipse-GUI-Layout AWT, Swing, JavaFX & SWT 5
E JavaHelp mit Eclipse AWT, Swing, JavaFX & SWT 2
B SWT Hello World-Anwendung mit GUI in Eclipse -Problem mit Import von SWT AWT, Swing, JavaFX & SWT 9
J eclipse/Visual Editor: Auf Felder/Methoden vom Hauptframe zugreifen AWT, Swing, JavaFX & SWT 4
M Swing Memory Spiel in Eclipse AWT, Swing, JavaFX & SWT 5
U Netbeans GUI nach Eclipse AWT, Swing, JavaFX & SWT 7
J Anwendung von Swing nach SWT bzw. Eclipse portieren AWT, Swing, JavaFX & SWT 3
G Look And Feel in Eclipse AWT, Swing, JavaFX & SWT 2
D Swing eine Art vorschlagsfenster wie in eclipse bei "." AWT, Swing, JavaFX & SWT 5
M SWT pack() von org.eclipse.swt.widgets.Control AWT, Swing, JavaFX & SWT 8
H Eclipse View / Window Layout AWT, Swing, JavaFX & SWT 3
S Dropdown-Menü wie auf der Eclipse-Toolbar AWT, Swing, JavaFX & SWT 7
T [Applet] startet in Eclipse aber nicht im Browser AWT, Swing, JavaFX & SWT 2
D Autovervollständigung wie bei Dreamweaver/Eclipse AWT, Swing, JavaFX & SWT 4
K Eclipse Visual Editor rendert die Komponenten nicht richtig AWT, Swing, JavaFX & SWT 2
K nervende eigenschaft von eclipse AWT, Swing, JavaFX & SWT 3
P Programm terminiert nicht (unter Eclipse) AWT, Swing, JavaFX & SWT 5
I Spezieller Knopf in Swing? Soll sein wie der Run in Eclipse. AWT, Swing, JavaFX & SWT 4
S Eclipse Icon Set AWT, Swing, JavaFX & SWT 6
T SWT/Eclipse Form Controls zur Laufzeit hinzufügen,GridLayout AWT, Swing, JavaFX & SWT 4
F Bilder im Quellcode verstecken - Eclipse AWT, Swing, JavaFX & SWT 15
W java.lang.NoClassDefFoundError: org/eclipse/swt/graphics/Dev AWT, Swing, JavaFX & SWT 1
D Tooltips in Eclipse AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben