Graphics2D scale und Positionierung einer TextArea

Status
Nicht offen für weitere Antworten.

Fabian23

Aktives Mitglied
Hallo zusammen,

ich habe ein JPanel, auf das ich mittels g2.scale() gezoomte Shapes zeichne. Klappt auch alles hervorragend.

Jetzt möchte ich meine Shapes umbennen und erstelle eine TextArea genau über dem Shape. Das klappt auch, so lange wie ich nicht zoome. Veränder ich allerdings die Zoomstufe, dann wird zwar die JTextArea über den Shape erstellt, also an der richtigen Stelle, editieren kann ich den Text allerings nur an der ursprünglichen Position.

Ist ein sehr merkwürdiges Problem. Weiß jemand, warum die TextArea an der richtigen Stelle ist, der Editor aber an der ursprünglichen erstellt wird?


Gruß,
Fabian
 

Fabian23

Aktives Mitglied
Ich meine, alle Koordinaten umgerechnet zu haben. Die TextArea an sich wird ja auch richtig anzeigt, nur der Editor nicht. Gibt es noch weitere Stelle außer das setLocation und setSize der TextArea, die ich beachten muss?
 

Marco13

Top Contributor
:cry: Das ist so ohne weiteres glaubich garnicht möglich. Abgesehen davon müßtest du (eigentlich) wie wild die Koordinaten der Mouse-Events umrechen, wenn du dort z.B. Text markieren wolltest. Wenn du jetzt nur setSize und setLocation überschrieben hast, wird das erstmal nichts bringen (und ohne einen Blick in den Quellcode kann man kaum wissen, WAS man alles überschreiben muss).

Kurz: Es ist schwierig bis unmöglich, eine JComponent (egal, welche) die mit einem "veränderten" (d.h. skalierten, verschobenen) Graphics2D gezeichnet wurde, noch vernünftig zu bedienen.

Sinnvoller wäre es in diesem Fall vermutlich, wenn du dir ausrechnest, wo die TextArea erscheinen soll, und sie dann z.B. in eine GlassPane legst. Die GlassPane könnte ein null-Layout haben, und du könntest die TextArea damit einfach (über allen anderen Components) "einblenden", ohne dir über die Skalierung der darunter liegenden Komponenten Gedanken machen zu müssen.
 
B

Beni

Gast
Hier gibts Code, der so eine Rotation umsetzt (und die Maus funktioniert noch).

Hier gibts ein Crosspost, die garnicht gerne gesehen werden...
 

Marco13

Top Contributor
OK...
Kurz: Es ist schwierig bis unmöglich, eine JComponent (egal, welche) die mit einem "veränderten" (d.h. skalierten, verschobenen) Graphics2D gezeichnet wurde, noch vernünftig zu bedienen.
... außer, wenn man drei Monate Arbeit reinsteckt :wink:

Sowas ähnliches hatte ich mal für JButtons geschrieben. Das ging noch. Aber ob das Programm von dieser Seite auch für JTextAreas funktioniert, sieht man an dem Beispiel nicht (und getestet habe ich es jetzt auch noch nicht). Auf jeden Fall sind die wesentlich schwieriger zu handhaben, als Buttons, Labels oder Slider...
 

Marco13

Top Contributor
Es funktioniert auch mit TextAreas. Beeindruckend. Da hat jemand viel SourceCode gewältzt :shock:
 
B

Beni

Gast
Nur an der richtigen Stelle angesetzt. Wenn du sein Quellcode anschaust, ist das garnicht soviel wie man befürchten müsste.
 

Marco13

Top Contributor
Es ist nicht "viel", aber es sind etliche Protected-Methoden überschrieben, und es enthält einige Sachen, von denen man IMHO NUR wissen kann, dass man sie tun muss, wenn man sich die Original-Sourcen von Sun ansieht...
if (xxx.getClass().getName().startsWith("javax.swing.ToolTipManager")) ...
usw...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F JPanel: Graphics2D, scale und Mauskoordinaten AWT, Swing, JavaFX & SWT 4
U Was ist ein Shape, also klar ein Objekt, aber was ist damit gemeint (Graphics2d)? Und was sidn affinetransformationen AWT, Swing, JavaFX & SWT 1
L Graphics2d zoomen AWT, Swing, JavaFX & SWT 3
L AWT graphics2d transform AWT, Swing, JavaFX & SWT 7
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
Soloeco Graphics2D - Verbinden zweier Punkte AWT, Swing, JavaFX & SWT 6
B Graphics -> Graphics2D etwas zu beachten? AWT, Swing, JavaFX & SWT 8
D AWT Graphics2D getClip gibt null zurück AWT, Swing, JavaFX & SWT 3
B Graphics2D Componente Drehen AWT, Swing, JavaFX & SWT 2
M Graphics2D: drawString Berechnung AWT, Swing, JavaFX & SWT 1
X AWT Graphics2D zum LWJGL Display hinzufügen aber wie? AWT, Swing, JavaFX & SWT 4
D Graphics2D einen Bereich füllen AWT, Swing, JavaFX & SWT 1
M JPanel und Graphics2D AWT, Swing, JavaFX & SWT 2
S Java2D/Graphics2D in Android..? AWT, Swing, JavaFX & SWT 2
B Graphics2d drawString mit double Werten? AWT, Swing, JavaFX & SWT 5
S Graphics2D: Transparent übereinander zeichnen AWT, Swing, JavaFX & SWT 7
S Graphics2D - setClip() AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Graphics2D object in ein anderes Zeichnen AWT, Swing, JavaFX & SWT 7
S AWT Pong - Probleme mit übergreifenden Objekten && Graphics2D AWT, Swing, JavaFX & SWT 3
C Image mit Graphics2D zeichnen AWT, Swing, JavaFX & SWT 9
S Frage zu Graphics2D AWT, Swing, JavaFX & SWT 3
Developer_X Swing Auf ein BufferedImage mit Graphics/Graphics2D zeichnen AWT, Swing, JavaFX & SWT 6
N AWT Graphics2D mehrmals aufrufen AWT, Swing, JavaFX & SWT 5
Developer_X Swing Graphics2D.zoom, wie rückgängig machen? AWT, Swing, JavaFX & SWT 6
Developer_X Swing Graphics2D translate zerstört performance AWT, Swing, JavaFX & SWT 2
N graphics2d auf panel AWT, Swing, JavaFX & SWT 2
Dit_ Ein Kreis als Graphics2D oder als Ellipse2D Objekt AWT, Swing, JavaFX & SWT 19
0 AWT Graphics2D.drawImage() funktioniert nicht mehr korrekt mit Core i7 AWT, Swing, JavaFX & SWT 4
A Swing LAF unter Windows: javax.swing.DebugGraphics cannot be cast to java.awt.Graphics2D AWT, Swing, JavaFX & SWT 5
A Swing Mit Graphics2D auf transparentem Hintergrund zeichnen AWT, Swing, JavaFX & SWT 7
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7
D BufferedImage und Graphics2D AWT, Swing, JavaFX & SWT 3
cowabunga1984 Implementierung von Graphics2D AWT, Swing, JavaFX & SWT 2
C Graphics2D, Text abschneiden AWT, Swing, JavaFX & SWT 2
N Graphics2D mit unterschiedlichen Grauwerten befüllen AWT, Swing, JavaFX & SWT 3
P paintComponent /paint/ update/ offscreenImage / Graphics2D / AWT, Swing, JavaFX & SWT 4
M Graphics2D - abstract void draw(.) AWT, Swing, JavaFX & SWT 2
redztripe Graphics2D rotieren und rotiertes Bild abspeichern AWT, Swing, JavaFX & SWT 2
R AffinrTransform + Graphics2D verschieben AWT, Swing, JavaFX & SWT 3
R Graphics2D + Bild anzeigen. AWT, Swing, JavaFX & SWT 25
M Probleme mit Graphics2D AWT, Swing, JavaFX & SWT 7
U 2dgraphics unterschied zwischen .scale und AffineTransform.getScaleInstance AWT, Swing, JavaFX & SWT 4
K Wie kann ich noch den scale bekommen, außer mit getScaleX oder getScaleY? AWT, Swing, JavaFX & SWT 1
W UI Scale AWT, Swing, JavaFX & SWT 6
H org.eclipse.swt.widgets.Scale MouseRelease listener AWT, Swing, JavaFX & SWT 1
A SWT SWT Scale und MouseListener AWT, Swing, JavaFX & SWT 7
T JFrame und Scale-Animation AWT, Swing, JavaFX & SWT 8
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
Ernesto95 JavaFX Absolute Positionierung und Skalierung AWT, Swing, JavaFX & SWT 1
B LayoutManager Positionierung von Buttons´s AWT, Swing, JavaFX & SWT 2
Kenan89 LayoutManager MigLayout Positionierung von Panels AWT, Swing, JavaFX & SWT 4
S Swing Positionierung eines Labels in einem Panel AWT, Swing, JavaFX & SWT 2
B LayoutManager Positionierung zwischen zwei Layoutkomponenten AWT, Swing, JavaFX & SWT 2
R Swing Positionierung von Komponenten AWT, Swing, JavaFX & SWT 5
Q Dynamische Zahl und Positionierung von Objekten AWT, Swing, JavaFX & SWT 5
J Punkt-genaue Positionierung von SWT-Komponenten AWT, Swing, JavaFX & SWT 10
A Positionierung von Komponenten in JFrame AWT, Swing, JavaFX & SWT 6
Strahlungsleck Swing Positionierung von Elementen im GridBagLayout AWT, Swing, JavaFX & SWT 2
M jPopupMenu - Problem bei der Positionierung AWT, Swing, JavaFX & SWT 3
V textarea Problem Positionierung AWT, Swing, JavaFX & SWT 2
X Relative positionierung in einem JInternalFrame AWT, Swing, JavaFX & SWT 3
G positionierung des eingabefensters AWT, Swing, JavaFX & SWT 2
R JFrame -- Variable Positionierung durch Window Manager? AWT, Swing, JavaFX & SWT 2
D Probleme bei der Positionierung von JPopupMenu AWT, Swing, JavaFX & SWT 2
K Positionierung in der Menüleiste AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben