2016-06-24 19 views
-3

Wie markieren Sie einen Zeilentext an der aktuellen Cursorposition ohne zu klicken, wenn ich in JTextPane meinen Cursor in meinen Text ziele?Markieren Sie eine Zeile mit dem Zielcursor in JTextPane

Hier mein Beispiel:

example

Also, wenn mein Cursor (keinen Klick) in Zeile 10 das Ziel, dann wird es all Wort in Zeile markiert 10.

hier mein Problem:

public void mouseMoved(MouseEvent e) { 
     int x=e.getX(); 
     int y=e.getY(); 
     component.requestFocus(); 

     Document doc = component.getDocument(); 
     Element root = doc.getDefaultRootElement(); 
     Element element = root.getElement(e.getX()); 
     int start = element.getStartOffset(); 
     int sel = start + e.getY(); 
     component.select(sel, sel); 
} 
+2

Ist Ihre Frage: Wie implementiere ich es? Ich habe deine Frage runtergeklickt, weil nicht klar ist, was du willst. Bitte verbessern und ich werde den Downclick entfernen, okay? – ControlAltDel

+0

ja, ich will es impertieren. – newbie

+0

Okay danke. Bitte eit/verbessere den eigentlichen Fragetext – ControlAltDel

Antwort

2

Auschecken Line Painter. Es zeigt, wie der Hintergrund der Linie basierend auf der aktuellen Caret-Position hervorgehoben wird.

Da Sie die Zeile der Mausposition möchten, müssen Sie den Code natürlich ändern, um das mouseMoved(...)-Ereignis eines MouseListener zu behandeln.

Sie müssen also die Informationen in der MouseEvent verwenden, um die Point, wo die Maus derzeit befindet. Sie müssten dann einen Rectangle mit diesem Punkt erstellen. Ich nehme an, Sie müssen nur die Breite/Höhe einen Wert von 1 für das Rechteck haben.

+0

wie, wenn ohne klicken? – newbie

+0

@newbie, ich habe dir schon gesagt, wie es geht. Sie müssen den Code in der Verknüpfung ändern. Wir sind nicht hier, um den Code für Sie zu schreiben. – camickr

Verwandte Themen