# GEF mit JAVA2D Eigene Objekte



## Tomas (23. Sep 2009)

hallo,

ich habe mir einen Editor gebastelt, welcher Kreise, Rechtecke, etc. zeichnet. nur das problem ist wie kann ich java2D Objekte in diesem Editor zeichnen?

Ich habe die paint() in den figures überschrieben doch die gibt mir keine java2d objecte

[Java]
@Override
	public void paint(Graphics g) {
		Graphics2D g2d = (Graphics2D)g; //Fehler Cannot cast from Graphics to Graphics2D

		Rectangle2D.Double rect = new Rectangle2D.Double(x+100, y+100, width, height); //Oder wie kann ich so ein object einhängen? Ich kann es nicht auf IFigure casten


		g.drawRectangle(x, y, width, height);
		this.setLayout(new Rectangle(x-1, y-1, width+1, height+1));
	}
[/Java]

ich bedanke mich mal!


----------



## Wildcard (23. Sep 2009)

Was soll das denn jetzt mit EMF zu tun haben?


----------



## Tomas (24. Sep 2009)

hoppala,

es ist gef gemein...mein fehler hab mich verschrieben..


----------



## Wildcard (24. Sep 2009)

GEF ist SWT, nicht Swing (bzgw. wird eigentlich mit Draw2D gezeichnet das dann wiederrum mit SWT rendert). Du kannst also nicht auf ein Swing Graphics2D casten.
Was fehlt dir denn am GEF Graphics Objekt?


----------



## Tomas (25. Sep 2009)

ich will eine linie bzw. eine polyline zeichnen ohne ein Rechteck zum verschieben, vergrößern verkleiner, sondern will nur mit einer addPoint() funktion diese weiterzeichnen. ist das möglich?


----------



## Wildcard (25. Sep 2009)

Das Graphics Objekt hat doch tausende draw Methoden. Was fehlt dir denn konkret?


----------



## Tomas (28. Sep 2009)

also ich hab mir son editor zusammengebastelt.

ich will eine Linie zeichnen mittels drag and drop nur ohne den rechteckigen rahmen da er stört. soll ich das mit connections machen?

das gleiche will ich mit einer polyline aber das ist ja dann so wie bei der line.

rauskommen sollte nur so ein kleiner editor

btw, wie kann ich die propertypage unter die outlinepage geben

bsp:

[Java] 
String editorArea = layout.getEditorArea();
		layout.setEditorAreaVisible(true);

		//Sets an Outlineview to this page
		layout.addStandaloneView(IPageLayout.ID_OUTLINE, true,
				IPageLayout.LEFT, 0.3f, editorArea);
		//Sets a PropertyPageView to this page
		layout.addStandaloneView(IPageLayout.ID_PROP_SHEET, true,
				IPageLayout.LEFT, 0.3f, editorArea);

[/Java]

gibts da ne gruppierung?


----------



## Tomas (29. Sep 2009)

es muss nicht drag and drop sein. ich will einfach eine linie zeichnen können die von einem Punkt A nach Punkt B gezeichnet wird. wie es am benutzerfreundlichsten ist weiß ich leider nicht, hat irgendjemand schon etwas ähnliches entwickelt oder erfahrung und kann mir helfen?


----------



## Wildcard (29. Sep 2009)

GEF ist nicht ganz einfach. Du solltest dir überlegen den Code von GMF generieren zu lassen, sonst kann das ein recht langer Weg zum funktionierenden GEF Editor werden,


----------



## Gast2 (29. Sep 2009)

so wie ich das sehe will er nur selber zeichnen.
dann lad dir eclipse.org.draw2D runter und zeichne


----------



## Tomas (29. Sep 2009)

ja ich zeichne mit java 2d is klar,

doch wie kann ich rein zwei Punkte (point(1/1) irgendwohin zeichnen (oder mehr aber egal) und diese verbinden ohne, dass ich das "bearbeitungsrechteck" habe?


----------



## Wildcard (29. Sep 2009)

Nein, du zeichnest *nicht* mit java 2d, sondern mit draw2d und draw2d ist nicht dafür verantwortlich wenn du irgendwo ein 'Bearbeitungsrechteck' hast. Mit Draw2D kannst du linien zeichnen, das ist kein Problem, aber kein Mensch kann aus deinen bisherigen Beschreibungen ableiten was dein Code eigentlich macht, demzufolge wüsste ich auch nicht was ich dir sagen soll ausser in die API-Doc des Draw2D graphics objekts zu schauen, das dutzende paint Operationen anbietet.


----------



## Tomas (30. Sep 2009)

also ich will ein kleines zeichenprogramm schreiben,

mein hauptproblem ist die Linie. Ich zeichne mit der "hand" und setze es nicht in dem Code sonst wär es ja kein Problem.

Nur hab ich keine ahnung wie ich die Linie zeichnen soll. Ich wollte es mit 2 Punkte (points) probiern und diese verbinden, nur weiß ich nicht wie.

Bei den Punkten stört mich, dass ein Rechteck welches die Punkte umschließt, alles dahinter verdeckt und ich will die Punkte einzeln verschieben können, damit ich es später ähnlich bei einer "Polyline" machen kann.

Ach ja, aus dem code, naja kann man ned recht viel rauslesen, aber ich wollte zeigen wie ich es machen wollte....



Wildcard hat gesagt.:


> GEF ist nicht ganz einfach. Du solltest dir überlegen den Code von GMF generieren zu lassen, sonst kann das ein recht langer Weg zum funktionierenden GEF Editor werden,



ist es wirklich um so viel einfacher wenn ich es mir generieren lasse, muss mich da ja einlesen aber das is egal. nur um wie viel einfacher wird es? hab da ja keine ahnung, da ich mir alles selbst beibringe und kann mir wer etwas vergleichbares zeigen wie sowas in etwa funktioniert?


----------



## Tomas (2. Okt 2009)

noch ne frage:

- ich will einen "FontPropertyDescriptor" erstellen der die Fonts meiner Labels in der Property page setzt. hat irgendwer ein beispiel wie ich sowas mache?


----------

