X und Y Position vom Cursor in jTextArea

dodlhuat

Mitglied
Ich hab eine jTextArea und wenn man "<" eingibt soll sich ein Popup zur Autovervollständigung öffnen. Das Problem ist das ich zwar von der Textarea mit getCaretPosition die Position vom Cursor in der Zeile bekomme, aber zum positionieren vom Popup bräuchte ich x und y Koordinaten.
Gibts da eine Möglichkeit die irgendwie zu bekommen?
 
Hi,

hänge doch einfach einen MouseListener an deine jTextArea. Dann kannst du bei mousePressed oder mouseReleased z.B. e.getX() bzw. e.getY() oder e.getXOnScreen() bzw. e.getYOnScreen() abfragen.
 
Hi,

hänge doch einfach einen MouseListener an deine jTextArea. Dann kannst du bei mousePressed oder mouseReleased z.B. e.getX() bzw. e.getY() oder e.getXOnScreen() bzw. e.getYOnScreen() abfragen.

Ein MouseListener wird ihm aber wohl nicht helfen, wenn er die EIngabe von "<" abfangen möchte.


Also du könntest den Y-Wert ermitteln indem du dir die Zeile holst, in der du dich befindest und dann mit der Zeilenhöhe multiplizierst. Den X-Wert bekommst du wenn du dir die Größe der Zeichen holst, die vor der CaretPosition stehen (Hinweis: http://java.sun.com/j2se/1.4.2/docs/api/java/awt/FontMetrics.html).
 
Also du könntest den Y-Wert ermitteln indem du dir die Zeile holst, in der du dich befindest und dann mit der Zeilenhöhe multiplizierst. Den X-Wert bekommst du wenn du dir die Größe der Zeichen holst, die vor der CaretPosition stehen (Hinweis: http://java.sun.com/j2se/1.4.2/docs/api/java/awt/FontMetrics.html).

Müsste man nicht zusätzlich dazu in Betracht ziehen welche Zeilen von der JTextArea angezeigt wird? Meistens weiß man ja nicht wie viel Text eingegeben wird bzw muss flexibel mit dem Platz im panel umgehen, so dass man vermute ich mal häufig eine TextArea in Verbindung mit einem Scrollpanel verwendet.

Nachtrag: ich habe da einen Thread im Internet gefunden, der Dich vielleicht auf die richtige Idee bringt. Sehr ähnlich wie von hammet angesprochen.
Guckst Du hier...
 
Zuletzt bearbeitet:
Zurück